全局聚合 #
global
全局聚合让你能跳出过滤聚合的聚合上下文。即使你包含了一个缩小文档集的过滤查询, global
聚合仍然对所有文档进行聚合,就好像过滤查询不存在一样。它忽略 filter
聚合,并隐式地假设 match_all
查询。
以下示例返回索引中所有文档的 taxful_total_price
字段的 avg
值:
GET sample_data_ecommerce/_search
{
"size": 0,
"query": {
"range": {
"taxful_total_price": {
"lte": 50
}
}
},
"aggs": {
"total_avg_amount": {
"global": {},
"aggs": {
"avg_price": {
"avg": {
"field": "taxful_total_price"
}
}
}
}
}
}
返回内容
...
"aggregations" : {
"total_avg_amount" : {
"doc_count" : 4675,
"avg_price" : {
"value" : 75.05542864304813
}
}
}
}
你可以看到, taxful_total_price
字段的平均值是 75.05,而不是 filter
示例中查询匹配时看到的 38.36。