🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Global Aggregation(全局聚合) 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-global-aggregation.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-global-aggregation.html) 译文链接 : [http://www.apache.wiki/display/Elasticsearch](http://www.apache.wiki/display/Elasticsearch)(修改该链接为 **ApacheCN** 对应的译文链接) 贡献者 : @于永超,[ApacheCN](/display/~apachecn),[Apache中文网](/display/~apachechina) ## Global Aggregation 定义搜索执行上下文中的所有文档的单个bucket,这个上下文由索引和您正在搜索的文档类型定义,但不受搜索查询本身的影响。 全局聚合器只能作为顶层聚合器放置,因为将全局聚合器嵌入到另一个分组聚合器中是没有意义的。 例子: ``` POST /sales/_search?size=0 { "query" : { "match" : { "type" : "t-shirt" } }, "aggs" : { "all_products" : { "global" : {}, #1 "aggs" : { #2 "avg_price" : { "avg" : { "field" : "price" } } } }, "t_shirts": { "avg" : { "field" : "price" } } } } ``` #1  global aggregation(全局聚合)有一个空的体 #2  为这个global aggregation(全局聚合)注册的子聚合 上面的聚合演示了如何在搜索上下文中的所有文档上计算聚合(本例中的avg_price),无论查询如何(在我们的示例中,它将计算我们目录中所有产品的平均价格,而不仅仅是在“shirts”) 上述聚合的响应结果: ``` { ... "aggregations" : { "all_products" : { "doc_count" : 7, #1 "avg_price" : { "value" : 140.71428571428572 #2 } }, "t_shirts": { "value" : 128.33333333333334 #3 } } } ``` #1 汇总的文档数量(在我们的例子中,搜索范围内的所有文档) #2 所有产品的平均价格 #3  所有“t_shirts”的平均价格