If we want to find all cars over $10,000 and also calculate the average price for those cars, we can use a constant_score
query and its filter
clause:
$10,000 이상의 모든 자동차와 해당 자동차들의 평균가를 계산하려면, constant_score
query와 filter
절을 사용할 수 있다.
GET /cars/transactions/_search { "size" : 0, "query" : { "constant_score": { "filter": { "range": { "price": { "gte": 10000 } } } } }, "aggs" : { "single_avg_price": { "avg" : { "field" : "price" } } } }
Fundamentally, using a non-scoring query is no different from using a match
query, as we discussed in the previous chapter. The query returns a certain subset of documents, and the aggregation operates on those documents. It just happens to omit scoring and may proactively cache bitsets, etc.
기본적으로, non-scoring query를 사용하는 것은, 지난 장에서 설명한 것처럼, match
query를 사용하는 것과 차이가 없다. query는 document의 특정 부분집합을 반환하고, aggregation은 해당 document를 연산한다. 단지, scoring을 생략하고, 미리 bitset을 cache한다.
'2.X > 4. Aggregations' 카테고리의 다른 글
4-05. Scoping Aggregations (0) | 2017.09.24 |
---|---|
4-06. Filtering Queries and Aggregations (0) | 2017.09.23 |
4-06-2. Filter Bucket (0) | 2017.09.23 |
4-06-3. Post Filter (0) | 2017.09.23 |
4-06-4. Recap (0) | 2017.09.23 |