《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.21.Aggregations(13) https://developer.aliyun.com/article/1229225
1、直方图聚合
比如按照产品价格间隔为1000进行分组聚合:
GET order/_search { "aggs": { "histogram_test": { "histogram": { //聚合类型 "field": "price", "interval": 1000 //分组间隔 } } } }
例如我们需要根据价格进行直方图聚合:指标(Metrics)选择计数(Count)->存储桶选择按列拆分(Split chart)->聚合类型选择直方图(histogram)->选择聚合字段,并配置 interval 间隔->点击更新即可得到我们想要的图表。
2、管道聚合-父类聚合
例如根据产品价格做直方图统计,在每个统计桶中做平均值得累加和统计:
GET order/_search { "aggs": { "my_histogram": { "histogram": { "field": "price", "interval": 1000 }, "aggs": { "avg_bucket": { "avg": { "field": "price" } }, "my_cumulative_sum":{ "cumulative_sum": { "buckets_path": "avg_bucket" } } } } } }
上述查询配置步骤:指标(Metrics)选择累计和(Cumulative Sum)->定制指标(Custom metric)中选择按照价格进行平均值聚合->存储桶选择 X 轴->聚合类型选择直方图->选择聚合字段,并配置 interval 间隔->点击更新即可得到我们想要的图表。
创作人简介:
扈臣聪,擅长应用设计与开发,关注Elasticsearch、Mysql、NLP等技术。
博客:https://developer.aliyun.com/profile/etlld5ckrmzfc