ES(四)| 数据聚合(分组、求和、求平均值、求最大最小值)
- 数据聚合
-
- 1.聚合的种类
- 2.DSL实现聚合
-
- 2.1.Bucket聚合语法
- 2.2.聚合结果排序
- 2.3.限定聚合范围
- 2.4.Metric聚合语法
- 2.5.总结
上一篇:ES(三)| 查询、排序、分页(深度分页问题)、高亮显示、Java使用RestClient进行ES操作
数据聚合聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如:
- 什么品牌的手机最受欢迎?
- 这些手机的平均价格、最高价格、最低价格?
- 这些手机每月的销售情况如何?
实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果。
1.聚合的种类聚合常见的有三类:
-
桶(
Bucket
)聚合:用来对文档做分组TermAggregation
:按照文档字段值分组,例如按照品牌值分组、按照国家分组Date Histogram
:按照日期阶梯分组,例如一周为一组,或者一月为一组
-
度量(
Metric
)聚合:用以计算一些值,比如:最大值、最小值、平均值等- Avg:求平均值
- Max:求最大值
- Min:求最小值
Stats
:同时求max、min、avg、sum等
-
管道(
pipeline
)聚合:其它聚合的结果为基础做聚合
注意:参加聚合的字段必须是keyword、日期、数值、布尔类型
2.DSL实现聚合现在,我们要统计所有数据中的酒店品牌有几种,其实就是按照品牌对数据分组。此时可以根据酒店品牌的名称做聚合,也就是Bucket聚合。
2.1.Bucket聚合语法语法如下:
GET /hotel/_search
{
"size":
关注
打赏
热门博文
- ES(四)| 数据聚合(分组、求和、求平均值、求最大最小值)
- Canal | 工作原理、安装部署、使用第三方插件与SpringBoot完美整合
- Redis分布式缓存(三)| 哨兵集群原理、哨兵集群搭建、集群故障恢复、与SpringBoot集成
- Redis分布式缓存(二)| 主从架构搭建、全量/增量同步原理、主从同步优化
- Redis分布式缓存(一)| 单机安装、RDB和AOF持久化
- RabbitMQ(四) | 惰性队列 - 解决消息堆积问题
- RabbitMQ(三) | 死信交换机、死信队列、TTL、延迟队列(安装DelayExchange插件)
- RabbitMQ(二) | 消息可靠性(消息确认机制、消息持久化、消息重试机制)
- RabbitMQ(一) | MQ技术对比,以及对RabbitMQ五种消息模型的使用
- Docker | 安装RabbitMQ详细教程,以及安装遇到的问题:Stats in management UI are disabled on this node