ES学习--Aggregation聚合的概念与应用
1、注意,本篇经验涉及到的数据主要是Kibana预置的航空公司数据(具体可以参考如下经撰颧幌汪验引用)。聚合操作可分为如下类型:1. 蚱澄堆别Bucket Aggregation, 桶聚集,即将稳定按照特定列的值分到不同桶中,类似 SQL 中的 group by 操作2. Metric Aggregation, 聚合运算,对文档数据的聚合结果进行运算,类似SQL中的聚合函数(比如 max min avg 等)3. Pipeline Aggregation, 对聚合结果进行二次聚合4. Matrix Aggreagation,提供对多个字段聚合操作的支持本篇经验主要分享Bucket Aggregation和Metric Aggregation聚合操作
2、Bucket Aggregation : 按 terms 进行聚合terms 聚合其实就是按照索引的某个字段对文档数据愉桴狁焕进行聚合统计,返回结果会包括该字段的值以及在该值下的文档数量。图示按照航空公司航班目的地字段进行 terms 聚合,对最后的聚合结果按照数量进行倒排,并获取前5条数据。

3、Bucket Aggregation : 按 range 进行聚合range聚合就是按照索引某个字段的值的区间对文档数据进行聚合统计,返回该字段各个区间的文档数量。图示按照航空公司航班平均票价字段进行 range 聚合,对于这个聚合,我们需要通过 ranges 关键字指明值区间


4、Metric Aggregation 聚合运算 : 单值返回操作图示,按照航空公司航班目的地字段进行 terms 聚合后,对聚合结果进行 Metric 运算,包括求一组聚合结果中指定字段的平均值(avg操作),最小值(min操作)和最大值(max操作)。


5、Metric Aggregation 聚合运算 : 多值返回操作图示,按照航空公司航班目的地字段进行 terms 聚合后,对聚合结果进行 Metric 运算,这里使用了 stats (统计操作)关键字,可以对一组聚合结果的指定字段返回多种统计值(包括求和,平均,最大,最小)。

6、多个 Bucket Aggregation 和 Metric Aggregation 的嵌套操作图示,按照航空公司航班目的地字段进行 terms 聚合后,在每组聚合结果中,再次按照到达目的地天气字段进行terms聚合统计,同时对这组聚合结果进行 stats 聚合运算。
