Kim-Baek 개발자 이야기

[Elasticsearch] Aggregation 본문

개발/Elasticsearch

[Elasticsearch] Aggregation

킴백 개발자 2020. 8. 12. 03:00

Aggregations

 

  • Aggregation은 검색 쿼리를 바탕으로 집합된 데이터를 제공해주는 프레임워크이다.
  • 복잡한 데이터들을 요약하기 위해서 Aggregation이라고 불리는 작은 블록들로 구성되어있다.
  • Aggregation은 각각의 목적과 결과에 해당하는 타입들이 존재한다.
  • Bucketing, Metric, Matrix, Pipeline 등 다양한 타입들이 존재한다.

 

Aggregation 구조

 

  • Aggregation은 JSON Object 형태이다.
  • < aggregation_name >은 사용자가 정의한 논리적인 이름이다. 예를들어 학생의 수 sum_student 처럼 정의 가능하다.

 

"aggregations" : {
    "<aggregation_name>" : {
        "<aggregation_type>" : {
            <aggregation_body>
        }
        [,"meta" : {  [<meta_data_body>] } ]?
        [,"aggregations" : { [<sub_aggregation>]+ } ]?
    }
    [,"<aggregation_name_2>" : { ... } ]*
}

 

Metrics aggregations

 

 - Documnet의 Field 에서 추출한 값들을 기반으로 새로운 계산을 통해 Aggregation 해준다.

 

 # member의 나이 합
 curl -XPOST 'localhost:9200/study/member/_search?pretty' -d '{
  "aggs" : {
    "age_sum" : { "sum" : { "field" : "age" }}
  }
 }'

 # member의 나이 평균
 curl -XPOST 'localhost:9200/study/member/_search?pretty' -d '{
   "aggs" : {
     "age_avg" : { "avg" : { "field" : "age" }}
   }
 }'

 

Reference

 

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html#search-aggregations

반응형

'개발 > Elasticsearch' 카테고리의 다른 글

[Elasticsearch] Mapping API  (0) 2020.08.11
[Elasticsearch] Index API  (0) 2020.08.10
[Elasticsearch] 기본 개념, Concept, 용어  (0) 2020.08.09
Comments