全局聚合
编辑全局聚合
编辑定义搜索执行上下文内所有文档的单个桶。此上下文由您正在搜索的索引和文档类型定义,但不会受搜索查询本身的影响。
全局聚合只能作为顶级聚合放置,因为将全局聚合嵌入另一个桶聚合中是没有意义的。
示例
resp = client.search( index="sales", size="0", query={ "match": { "type": "t-shirt" } }, aggs={ "all_products": { "global": {}, "aggs": { "avg_price": { "avg": { "field": "price" } } } }, "t_shirts": { "avg": { "field": "price" } } }, ) print(resp)
response = client.search( index: 'sales', size: 0, body: { query: { match: { type: 't-shirt' } }, aggregations: { all_products: { global: {}, aggregations: { avg_price: { avg: { field: 'price' } } } }, t_shirts: { avg: { field: 'price' } } } } ) puts response
const response = await client.search({ index: "sales", size: 0, query: { match: { type: "t-shirt", }, }, aggs: { all_products: { global: {}, aggs: { avg_price: { avg: { field: "price", }, }, }, }, t_shirts: { avg: { field: "price", }, }, }, }); console.log(response);
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" } } } }
上述聚合演示了如何在搜索上下文中的所有文档上计算聚合(在此示例中为 avg_price
),而不管查询如何(在我们的示例中,它将计算目录中所有产品的平均价格,而不仅仅是“衬衫”)。
上述聚合的响应