elasticsearch 집합 초식 (1)
3164 단어 elasticsearch 집합
참고
elasticsearch 권위 가이드
2. 기본 개념
2.1 두 가지 주요 개념
모든 집합은
(1) 한 통 혹은 여러 통
(2) 0개 이상의 지표
의 조합
2.2통
쉽게 말하면 통은 특정한 조건을 만족시킨 문서의 집합이다
집합이 실행되기 시작하면,
(1) 각 문서의 값은 계산을 통해 어느 통의 조건에 부합되는지 결정한다.
(2) 일치하면 해당 통에 문서를 넣고 집합 작업을 진행합니다
(3) 통은 다른 통에 끼워 넣을 수 있고 차원화되거나 조건이 있는 구분 방안을 제공할 수 있다
2.3 지표
유통은 목표를 달성하는 수단이고 최종 목표는 다음과 같다.
통 안의 문서에 대해 몇 가지 지표를 계산하다
대다수의 지표는 모두 간단한 수학 계산이다
3. 통 정렬
3.1 기본 정렬
기본값, 다수치 통은 doc_에 따라count 내림차순 정렬
3.2 order
order 객체를 도입하여 배럴 정렬을 확장했습니다.
유형
설명
terms
histogram
date_histogram
_count
문서 수량에 따라 정렬
✅
✅
✅
_term
단어 항목의 문자열의 사전 순서에 따라 배열하다
✅
❌
❌
_key
모든 통의 키 값 수치에 따라 정렬
❌
✅
✅
3.3 도량 정렬
도량 집합을 추가한 다음 외부 order에서 구체적인 도량을 지정할 수 있습니다
GET /cars/_search
{
"size": 0,
"aggs": {
"colors": {
"terms": {
"field": "color",
"order": {
"avg_price": "asc"
}
},
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
}
GET /cars/_search
{
"size": 0,
"aggs": {
"colors": {
"terms": {
"field": "color",
"order": {
"stats.variance": "asc"
}
},
"aggs": {
"stats": {
"extended_stats": {
"field": "price"
}
}
}
}
}
}
3.4 깊이 도량
다음과 같이 메트릭을 중괄호
>
로 중첩하여 더 깊은 경로를 정의할 수 있습니다.my_bucket>another_bucket>metric
하지만
(1) 중첩 경로의 모든 통은 단값이어야 한다
(2) 단일 드럼은 3개뿐:
filter
, global
및 reverse_nested
GET /cars/_search
{
"size": 0,
"aggs": {
"colors": {
"histogram": {
"field": "price",
"interval": 20000,
"order": {
"red_green_cars>stats.variance": "asc"
}
},
"aggs": {
"red_green_cars": {
"filter": {
"terms": {
"color": [
"red",
"green"
]
}
},
"aggs": {
"stats": {
"extended_stats": {
"field": "price"
}
}
}
}
}
}
}
}