在日常中,除了使用正常的长讯之外,我们还会涉及到在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、这种分桶型聚合计算的统计,可以更细粒度的统计到分组类的统计信息。
还没有评论,来说两句吧...