推广 热搜: 公司  快速  上海  中国  未来    企业  政策  教师  系统 

ES聚合查询 基于RestHighLevelClient依赖 Java操作

   日期:2024-10-31     作者:caijiyuan    caijiyuan   评论:0    移动:http://keant.xrbh.cn/news/10430.html
核心提示:一、介绍 (偏自我理解)        1.ES聚合查询通用流程                1.分组 ( 好比Mysql --- group by 

一、介绍 (偏自我理解)

        1.ES聚合查询通用流程

ES聚合查询 基于RestHighLevelClient依赖 Java操作

                1.分组 ( 好比Mysql ---> group by

                2.组内聚合 也叫 组内指标( 好比Mysql ---> SUM()、COUNT()、AVG()、MAX()、MIN()

        2.桶(我要是es开发者,我起名叫啥都行

                1.满足特定条件的文档的集合,叫做桶。

                   桶的就是一组数据的集合,对数据分组后,得到一组组的数据,就是一个个的桶

        3.指标

                1.指标指的是对文档进行统计计算方式,又叫指标聚合。

                2.强大之处就是,前面将数据经过一轮桶聚合,把数据分成一个个的桶之后,我们根据上面计算指标对桶内的数据进行统计。

        4.举例说明

下面看个简单的聚合查询的例子

假设存在一个order索引,存储了每一笔汽车销售订单,里面包含了汽车颜色字段color.

上面使用了terms桶聚合,而且没有明确指定指标聚合函数,默认使用的是Value Count聚合指标统计文档总数, 整个统计的意思是统计每一种汽车颜色的销量。

        5.常用方法

常用的统计函数如下

  • Value Count - 类似sql的count函数,统计总数
  • Cardinality - 类似SQL的count(DISTINCT 字段), 统计不重复的数据总数
  • Avg - 求平均值
  • Sum - 求和
  • Max - 求最大值
  • Min - 求最小值

        4.上货 (需求:用户搜索热词检索出搜索最多的Top10

1.首先检索热词,用户在input框输入的时候,每点查询,数据的信息都需要入库,好在咱们es中统计热词

2.插入就不展示了,就说说简单的热词如何分组排序显示。

3.Kibana操作

        我觉得这样再看Java操作就很好理解了 ↓ ↓ ↓ ↓ ↓ ↓

4.Java操作

        将最终结果,包括关键字以及该关键字的出现次数都return给前端,让前端大哥去处理把。

5.福利 (ES聚合用法

本节只使用了最简单的类似SQL的group by的Es Terms()函数 更多细节有很多

ES常用的桶聚合如下

1)Terms聚合 - 类似SQL的group by,根据字段唯一值分组
2)Histogram聚合 - 根据数值间隔分组,例如: 价格按100间隔分组,0、100、200、300等等
3)Date histogram聚合 - 根据时间间隔分组,例如:按月、按天、按小时分组
4)Range聚合 - 按数值范围分组,例如: 0-150一组,150-200一组,200-500一组。

提示:桶聚合一般不单独使用,都是配合指标聚合一起使用,对数据分组之后肯定要统计桶内数据,在ES中如果没有明确指定指标聚合,默认使用Value Count指标聚合,统计桶内文档总数。

本文地址:http://lianchengexpo.xrbh.cn/news/10430.html    迅博思语资讯 http://lianchengexpo.xrbh.cn/ , 查看更多
 
标签: 聚合查询 操作
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号