目录
聚合(aggregations)
聚合可以让我们极其方便的实现对数据的统计、分析,实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现实时搜索效果。下面介绍两种最常用的聚合
1.桶(bucket)
桶的作用,是按照某种方式对数据进行分组,但不包括计算,因此bucket中往往会嵌套另一种聚合:metrics aggregations即度量
比较常用的桶划分方式有
-
Date Histogram Aggregation:根据日期阶梯分组,例如给定阶梯为周,会自动每周分为一组
-
Histogram Aggregation:根据数值阶梯分组,与日期类似
-
Terms Aggregation:根据词条内容分组,词条内容完全匹配的为一组
-
Range Aggregation:数值和日期的范围分组,指定开始和结束,然后按段分组
2.度量(metrics)
分组完成以后,我们一般会对组中的数据进行聚合运算,例如求平均值、最大、最小、求和等,这些在ES中称为度量
常用的度量集合方式有
-
Avg Aggregation:求平均值
-
Max Aggregation:求最大值
-
Min Aggregation:求最小值
-
Percentiles Aggregation:求百分比
-
Stats Aggregation:同时返回avg、max、min、sum、count等
-
Sum Aggregation:求和
-
Top hits Aggregation:求前几
-
Value Count Aggregation:求总数
3.聚合为桶示例
4.桶内度量示例
5.嵌套桶示例
6.阶梯分桶Histogram
histogram是把数值类型的字段,按照一定的阶梯大小进行分组。你需要指定一个阶梯值(interval)来划分阶梯大小。
示例
注意:需要进行聚合、排序、过滤的字段其处理方式比较特殊,因此不能被分词