写在前面
本文看下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 待补充!!!