Elasticsearch桶聚合:深入解析与应用
1. 桶聚合概述
桶聚合是一种强大的数据聚合方式,与指标聚合不同,它返回的数据不是单一指标,而是一系列键值对,这些键值对被称为桶。例如,术语聚合可以返回给定字段中每个术语关联的文档数量。桶聚合的一个重要特性是支持子聚合,即可以在返回桶的聚合中嵌套其他聚合。下面将详细介绍Elasticsearch提供的几种桶聚合类型。
2. 过滤聚合
过滤聚合是一种简单的桶聚合,它可以将结果过滤到单个桶中。例如,要获取所有小说(即tags字段中包含“novel”的书籍)的数量和平均副本数,可以使用以下查询:
{ "aggs": { "novels_count": { "filter": { "term": { "tags": "novel" } }, "aggs": { "avg_copies": { "avg": { "field": "copies" } } } } } }在这个查询中,首先定义了一个过滤条件,只选择tags字