aggregation,scope,一个聚合操作,必须在query的搜索结果范围内执行
global 定义
global:就是global bucket,就是将所有数据纳入聚合的scope,而不管之前的query
搜索测试
GET /tvs/sales/_search { "size": 0, "query": { "term": { "brand": { "value": "小米" } } }, "aggs": { "single_brand_avg_price": { "avg": { "field": "price" } }, "all": { "global": {}, "aggs": { "all_brand_avg_price": { "avg": { "field": "price" } } } } } } |
搜索结果
{ "took": 4, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 3, "max_score": 0, "hits": [] }, "aggregations": { "all": { "doc_count": 8, "all_brand_avg_price": { "value": 2650 } }, "single_brand_avg_price": { "value": 1666.6666666666667 } } }
|
出来两个结果,一个结果,是基于query搜索结果来聚合的; 一个结果,是对所有数据执行聚合的
global:就是global bucket,就是将所有数据纳入聚合的scope,而不管之前的query
single_brand_avg_price:就是针对query搜索结果,执行的,拿到的,就是长虹品牌的平均价格
all.all_brand_avg_price:拿到所有品牌的平均价格