写在前面

本文看下es的聚合相关内容。

1:什么是聚合

即,数据的统计分析。如sum,count,avg,min,max,分组等。

2:支持哪些聚合类型

2.1:bucket aggregation

对满足特定条件的文旦进行分组。如:

2.1:metric aggregation

数学运算。如:

2.3:pipeline aggregation

对聚合的结果进行再一次的聚合。

2.4:matrix aggregation

对多个字段操作并提供一个结果矩阵???嘛意思???

3:实战

测试数据参考这里 。但如果你是按照专栏顺序看的,我想你本地已经有这些数据了。

3.1:bucket aggregation

按照飞行目的地分组:

GET kibana_sample_data_flights/_search{"size": 0,"aggs": {"飞行目的地分组": {"terms": {"field": "DestCountry"}}}}

3.2:metric aggregation

按照飞行目的地分组后,对分组的数据取最大最小和平均值。

GET kibana_sample_data_flights/_search{"size": 0,"aggs": {"飞行目的地分组": {"terms": {"field": "DestCountry"},"aggs": {"票价平均值": {"avg": {"field": "AvgTicketPrice"}},"票价最大值": {"max": {"field": "AvgTicketPrice"}},"票价最小值": {"min": {"field": "AvgTicketPrice"}}}}}}

按照飞行目的地分组后,通过stats取每个分组的统计信息(会列出min,max,avg等常用统计信息),并且对每个分组再按照天气做一次分组,并取前5条数据:

GET kibana_sample_data_flights/_search{"size": 0,"aggs": {"飞行目的地分组": {"terms": {"field": "DestCountry"},"aggs": {"组内统计信息": {"stats": {"field": "AvgTicketPrice"}},"weatherrr": {"terms": {"field": "DestWeather","size": 5}}}}}}

TODO 待补充!!!

写在后面

参考文章列表