Elastic Search - Metric Aggregation
도큐먼트 안에서 조합을 통해 어떠한 값을 도출하는 방법
Metric Aggregation은 산술적인 부분에 사용된다
xxxxxxxxxxcurl -XPOST -H "Content-Type:application/json" --data-binary @basket.json파일의 내용을 넣는 것이니 `-data-binary 을 쓴다.
농구 데이터
basket.json 의 내용
xxxxxxxxxx{    "index" :        {            "_index": "basketball",            "_type": "record",            "_id": "1"        }}{    "team" : "Chicago Bulls",    "name" : "Michael Jordan",    "points": 30,    "rebounds": 3,    "assists": 4,    "submit_date" : "1996-10-11"}{    "index" :        {            "_index": "basketball",            "_type": "record",            "_id": "2"        }}{    "team" : "Chicago Bulls",    "name" : "Michael Jordan",    "points": 30,    "rebounds": 5,    "assists": 8,    "submit_date" : "1996-10-11"}
산술적인 값 도출을 위해
avg_points_aggs.json 을 작성한다. 
파일이름에서 알 수 있듯 평균 값을 도출해낼 것이다.
xxxxxxxxxx{    "size": 0,    "aggs": {        "avg_score": {            "avg": {                "field": "points"            }        }    }}
도큐먼트에서 points 값들의 평균을 나타낸다.
xxxxxxxxxxcurl -XGET localhost:9200/_search?pretty -H "Content_Type:application/json" --data-binary @avg_points_aggs.json
그럼 아래와 같은 결과가 출력된다.
x
{  "took" : 8,  "timed_out" : false,  "_shards" : {    "total" : 15,    "successful" : 15,    "skipped" : 0,    "failed" : 0  },  "hits" : {    "total" : 26,    "max_score" : 0.0,    "hits" : [ ]  },  "aggregations" : {    "avg_score" : {      "value" : 25.0    }  }}
'avg_points_aggs.json' 에서 "avg" 는 평균을 나타내게 한다.
sum , max, min , count 도 사용가능하다.
"avg_score"는 출력될때 무슨 값인질 나타내는 것이다.
그대로 이름이기에 산술 결과에 영향을 미치진 않는다.
그럼 sum. avg .... 등 산술연산들을 한번에 보기 위한 search를 해본다.
먼저 바이너리 데이터로 stats_points_aggs.json을 작성해본다.
xxxxxxxxxx{    "size": 0,    "aggs" : {        "stats_score" : {            "stats" : {                "field": "points"            }        }    }}
xxxxxxxxxxcurl -XGET localhost:9200/_search?pretty -H "Content-Type:application/json" --binary-data @stats_points_aggs.json
출력결과
xxxxxxxxxx{  "took" : 4,  "timed_out" : false,  "_shards" : {    "total" : 15,    "successful" : 15,    "skipped" : 0,    "failed" : 0  },  "hits" : {    "total" : 26,    "max_score" : 0.0,    "hits" : [ ]  },  "aggregations" : {    "roharon_score" : {      "count" : 2,      "min" : 20.0,      "max" : 30.0,      "avg" : 25.0,      "sum" : 50.0    }  }}
위와 같이 출력된다.
다음 Aggregation은 Bucket Aggregation.
'Back-end' 카테고리의 다른 글
| Kibana - Visualization (0) | 2018.09.05 | 
|---|---|
| Elastic Search - Bucket Aggregation (0) | 2018.09.01 | 
| ElasticSearch Search 데이터 조회하기 (0) | 2018.08.30 | 
| ElasticSearch Mapping (0) | 2018.08.30 | 
| Elastic Search 벌크 (0) | 2018.08.29 | 
댓글