본문 바로가기

Elasticsearch

Aggregations

지표, 통계 또는 다른 분석자료로서 데이터를 요약한다.

 

아래와 같은 세가지 카테고리가 있다.

  1. Metric
    filed 값들로부터 합계, 평균 등을 계산한다.
  2. Bucket
    field 값들, 범위 또는 다른 기준을 근거로 하여 document 들을 bucket 에 그룹화 한다.
  3. Pipeline
    document 나 field 대신 다른 aggregation 으로 부터 입력을 취한다.

 

terms aggregation

multi-bucket 값을 bucket 들이 동적으로 설계되는 aggregation 을 기반으로 하여 얻는다.

 

Response

  1. doc_count_error_upper_bound
    각 term 에 대한 document 개수의 오류의 상한값(?)
  2. sum_other_doc_count
    유일한 term 이 많이 있을 때, elasticsearch 는 top term 만 반환한다.
    현재 response 에 부분이 아닌 모든 bucket 들에 대한 document 개수의 합
  3. buckets

 

Size

기본적으로 terms aggregation 은 상위 10개의 term 들을 반환한다.

size parameter 를 사용해서 그 이상의 terms 들을 반환 할 수 있다.

전부를 원하는 경우 composite aggregation 을 사용 할 수 있다.

 

 

Order

기본적으로, terms aggregation 은 document 의 개수(_count) 를 내림차순으로 정렬한다.

order parameter 를 사용해서 다른 기준으로 정렬 할 수 있다.

 

 

Sub aggregation

parent aggregation 에 의해 생성 된 bucket 에서 다시 aggregation 을 취하는 것

 

 

Filtering

 

 

 

 

composite aggregation

성능을 좀 탄다(?)

 

다른 multi-bucket aggregation 과 달리, composite aggregation 은 multi-level aggregation 으로 부토 모든 bucket 들을 효율적으로 페이지를 매길 수 있다(?)

 

특정한 aggregation 의 모든 bucket 들을 스트림화 하는 방법을 제시하며,

document 에 대한 scroll 과 유사하다.

 

Value sources

sources parameter 는 composited bucket 을 만들 때 사용하기 위한 source field 들을 정의한다.

정의 된 sources 들의 순서는 반환 될 key 들의 순서를 제어한다.

sources parameter 는 아래 타입이어야 한다.

  • terms
    terms aggregation 과 유사하지만, 같은 parameter set 을 지원하지는 않는다.
  • histogram
  • date_histogram
  • geotile_grid

 

Order

기본적으로 composited bucket 들은 그들의 자연적인 순서로 정렬된다.(오름차순)

 

Size

size parameter 는 얼마나 많은 composite bucket 들이 반환되어야 하는지 정의하기 위해 설정할 수 있다.

각 composite bucket 들은 단일 bucket 으로 고려되어, 10 이라는 크기의 설정은 value sources 에서 생성 된 처음 10개의 composite bucket 들을 반환 할 것 이다.

기본 값은 10

 

 

Pagination

composite bucket들의 개수가 너무 많아서 단일 응답으로 반환 될 수 없는 경우,

여러번에 요청으로 분할 하여 복구하는 것이 가능하다.

composite bucket 들은 자연적으로 평탄화되므로, 요청된 size 는 정확히 응답에 반환 될 composite bucket 의 수 이다.

 

after parameter 를 사용하여 여러번에 걸쳐 응답을 받을 수 있다.

 

첫 request 에 대한 response 에서 after_key 라는 항목을 이용하여

다음 request 내 after 항목에 이를 추가한다.

 

 

Top hits aggregation

top_hits metric aggregator 는 aggregate 되는 중인 가장 관련있는 document 를 추적한다.(?)

이 aggregator 는 sub aggregator 로 사용되며,  bucket 당 top matching document 를 aggregate 할 수 있다.

 

top_hits 를 top-level aggregation 으로 사용하는 것은 권장하지 않는다.

search hits 를 group 화 하기 원한다면, collapse 라는 parameter 를 대신 사용하는 것을 권장한다.

 

top_hits aggregator 는 bucket aggreagor 를 통해 특정 필드별로 result set 을 그룹화 하는데 효과적으로 사용 할 수 있다.

 

아래와 같은 option 이 있다.

  • from
  • size
    bucket 당 top matching hits 를 반환하기 위한 최대 개수
  • sort
    top matching hits 를 위한 정렬 방식

 

 

 

 

 

'Elasticsearch' 카테고리의 다른 글

Aggregations - bucket  (0) 2022.08.03
Aggregation - metric  (0) 2022.08.03
각종 query 정리  (0) 2022.05.31
Elasticsearch 설치 및 설정  (0) 2022.04.02