Bucket 可以理解为一个桶,它会遍历文档中的内容,凡是符合某一要求的就放入一个桶中(类似于SQL中的group by)
Terms Aggregation
用于分组聚合
根据 language 字段对 books 索引中的文档进行分组,统计各编程语言的书的数量
1 | POST books/_search?size=0 |
结果如下:
1 | { |
Filter / Filters Aggregation
Filter 是过滤器聚合,将符合过滤器条件的文档分别分到一个桶中
Filters 是多过滤器聚合,将符合多个过滤条件的文档分到不通的桶中
1 | POST books/_search?size=0 |
结果如下:
1 | { |
Range / Date Range / IP Range Aggregation
Range 范围聚合,可以用于数字、日期
1 | POST books/_search?size=0 |
Date Range 专门用于日期类型的,与 Range 不通在于日期的起止值可以使用数学表达式
1 | POST books/_search?size=0 |
IP Range 用于对IP类型数据范围聚合
1 | POST ip_test/_search?size=0 |
Date Histogram Aggregation
时间直方图聚合,常用于按照日期对文档进行统计并绘制条形图
对 books 索引中的图书和出版日期按月做时间直方图聚合
1 | POST books/_search?size=0 |
结果如下:
1 | { |
Missing Aggregation
空值聚合,将文档集中所有缺失字段的文档分到一个桶中
对 books 索引中缺失 price 字段(包含值为null的)的文档进行聚合
1 | POST books/_search?size=0 |
结果如下:
1 | { |
Children Aggregation
一种特殊的单桶聚合,可以根据父子分档关系进行分桶
Geo Distance Aggregation
用于对地理点(geo_point)做范围统计
1 | POST geo/_search?size=0 |
结果如下:
1 | { |