In the prior examples, the metric was a direct child of the bucket. An average price was calculated for each term. It is possible to sort on deeper metrics, which are grandchildren or great-grandchildren of the bucket—with some limitations.
이전의 예제에서, metric은 bucket의 직접적인 자식이었다. 평균 가격은 각 단어에 대해 계산된 값이었다. 더 아래의(deeper) metric으로 정렬하는 것이 가능하다. 약간의 제한이 있지만, bucket의 손자, 증손자도 가능하다.
You can define a path to a deeper, nested metric by using angle brackets (>
), like so: my_bucket>another_bucket>metric
.
my_bucket>another_bucket>metric
처럼, >
(angle brackets)을 사용하여, 더 아래의 nested metric으로, 경로(path)를 지정할 수 있다.
The caveat is that each nested bucket in the path must be a single-value bucket. A filter
bucket produces a single bucket: all documents that match the filtering criteria. Multivalue buckets (such as terms
) generate many dynamic buckets, which makes it impossible to specify a deterministic path.
주의할 점은, 경로에 있는 각각의 nested bucket은 반드시 단일-값(single-value) bucket이어야 한다.filter
bucket은 단일 bucket(filtering 기준에 일치하는 모든 document)을 생성한다. 다중 값 bucket(terms
같은)은 많은 동적인 bucket을 생성한다. 따라서 확정적인 경로를 지정할 수 없다.
Currently, there are only three single-value buckets: filter
, global
, and reverse_nested
. As a quick example, let’s build a histogram of car prices, but order the buckets by the variance in price of red and green (but not blue) cars in each price range:
현재로서는, 3 개의 단일-값 bucket(filter
, global
, reverse_nested
)이 있다. 간단한 예로, 자동차 판매 가격의 histogram을 만들어보자. 단, bucket의 순서는, 각 가격 범위에서 빨강과 녹색(파랑이 아닌) 자동차의 가격 분산으로 한다.
GET /cars/transactions/_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"}} } } } } } }
histogram에 의해 생성한 bucket을, nested metric의 분산에 따라, 정렬 | |
단일-값 | |
metric으로 생성한 stats로 정렬 |
In this example, you can see that we are accessing a nested metric. The stats
metric is a child of red_green_cars
, which is in turn a child of colors
. To sort on that metric, we define the path as red_green_cars>stats.variance
. This is allowed because the filter
bucket is a single-value bucket.
이 예제에서, nested metric을 access하는 것을 볼 수 있다. stats
metric은 red_green_cars
의 자식이다. 그리고 차례대로 colors
의 자식이다. metric으로 정렬하기 위해, 경로를 red_green_cars>stats.variance
로 정의하였다. 이것은 filter
bucket이 단일-값 bucket이기 때문에 가능하다.
'2.X > 4. Aggregations' 카테고리의 다른 글
4-07-1. Intrinsic Sorts (0) | 2017.09.23 |
---|---|
4-07-2. Sorting by a Metric (0) | 2017.09.23 |
4-08. Approximate Aggregations (0) | 2017.09.23 |
4-08-1. Finding Distinct Counts (0) | 2017.09.23 |
4-08-2. Calculating Percentiles (0) | 2017.09.23 |