Often, you’ll find yourself wanting to sort based on a metric’s calculated value. For our car sales analytics dashboard, we may want to build a bar chart of sales by car color, but order the bars by the average price, ascending.
metric의 계산된 값을 기준으로 정렬해야 하는 경우가 있다. 자동차 판매 분석 대시보드에서, 자동차 색상으로, 판매 bar chart를 만든다고 가정해 보자. 그런데, bar의 순서는 평균가의 오름차순이다.
We can do this by adding a metric to our bucket, and then referencing that metric from the order
parameter:
bucket에 metric을 추가하고, order
매개변수에서 해당 metric를 참조하면 가능하다.
GET /cars/transactions/_search { "size" : 0, "aggs" : { "colors" : { "terms" : { "field" : "color", "order": { "avg_price" : "asc" } }, "aggs": { "avg_price": { "avg": {"field": "price"} } } } } }
This lets you override the sort order with any metric, simply by referencing the name of the metric. Some metrics, however, emit multiple values. The extended_stats
metric is a good example: it provides half a dozen individual metrics.
이것은 단순히 metric의 이름을 참조함으로써, 다른 metric의 정렬 순서보다 우선시된다. 그러나, 일부 metric은 다중 값을 출력한다. extended_stats
metric이 좋은 예이다. 그것은 6개 정도의 개별 metric을 제공한다.
If you want to sort on a multivalue metric, you just need to use the dot-path to the metric of interest:
다중 값 metric을 정렬해야 한다면, 관심 있는 metric의 점 경로(dot-path)를 사용해야 한다.
GET /cars/transactions/_search { "size" : 0, "aggs" : { "colors" : { "terms" : { "field" : "color", "order": { "stats.variance" : "asc" } }, "aggs": { "stats": { "extended_stats": {"field": "price"} } } } } }
In this example we are sorting on the variance of each bucket, so that colors with the least variance in price will appear before those that have more variance.
이 예제에서는, 각 bucket의 분산(variance)으로 정렬하고 있다. 가격의 분산이 최소인 색상이, 분산이 더 많은 색상보다, 먼저 나타날 것이다.
'2.X > 4. Aggregations' 카테고리의 다른 글
4-07. Sorting Multivalue Buckets (0) | 2017.09.23 |
---|---|
4-07-1. Intrinsic Sorts (0) | 2017.09.23 |
4-07-3. Sorting Based on "Deep" Metrics (0) | 2017.09.23 |
4-08. Approximate Aggregations (0) | 2017.09.23 |
4-08-1. Finding Distinct Counts (0) | 2017.09.23 |