在日常中,除了使用正常的长讯之外,我们还会涉及到在Elasticsearch中进行数据统计。在elasticsearch中支持的聚合统计种类有:度量聚合统计和多桶型聚合统计。
度量聚合统计
是指一组文档的统计分科,可以得到最大值,最小值,平均值等结果
分桶型聚合统计
是指将匹配的文档切分为一个或多个桶,然后统计每个桶里面的文档数量
本篇文章主要介绍的是分桶型聚合统计。分桶的话,那我们肯定是需要需要根据某个字段进行分同group by对吧,所以这里我们还是使用上一篇文章的devices索引进行测试。
这里我们的需求是根据devices的分类进行统计,统计每一个分类里面的最大值,最小值,总和和平均值。从这个需求来看其实就是根据设备的分类进行分桶。下面我们来演示下
post /devices/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"cal_cat": {
"terms": {
"field": "device_category"
},
"aggregations": {
"min_price": {
"min": {
"field": "device_score"
}
},
"max_price": {
"max": {
"field": "device_score"
}
},
"avg_price": {
"avg": {
"field": "device_score"
}
},
"sum_price": {
"sum": {
"field": "device_score"
}
}
}
}
}
}备注:
1、这种分桶型聚合计算的统计,可以更细粒度的统计到分组类的统计信息。



还没有评论,来说两句吧...