global 聚合

定义一个搜索执行上下文中所有文档的单桶聚合。 这个上下文由索引和正在搜索的文档的类型定义,但受搜索查询本身的影响。

global 聚合器只能作为顶级聚合器,因为将一个 global 聚合器嵌入另一个桶聚合器是没有意义的。

示例:

POST /sales/_search?size=0
{
    "query" : {
        "match" : { "type" : "t-shirt" }
    },
    "aggs" : {
        "all_products" : {
            "global" : {}, 
            "aggs" : { 
                "avg_price" : { "avg" : { "field" : "price" } }
            }
        },
        "t_shirts": { "avg" : { "field" : "price" } }
    }
}

global聚合的主体为空

为此global聚合注册的子聚合

上面的聚合演示了如何计算搜索上下文中所有文档的聚合(在本例中为avg_price),而不管查询是什么(在本例中,它将计算目录中所有产品的平均价格,而不仅仅是“t_shirts”)。

上面的聚合的响应是:

{
    ...
    "aggregations" : {
        "all_products" : {
            "doc_count" : 7, 
            "avg_price" : {
                "value" : 140.71428571428572 
            }
        },
        "t_shirts": {
            "value" : 128.33333333333334 
        }
    }
}

聚合的文档数量(在这个例子中,是搜索上下文中的所有文档)

索引所有产品的平均价格

所有 t-shirts 的平均价格