ElasticSearch7.x入门教程之全文搜索聚合分析(十)

   日期:2024-12-13     作者:yindufu1      
核心提示:这篇文档就简单记录哈ES中的聚合分析,包括指、、。其实就是数据库中的各类分析函数,比如、、、y、g等等。主要应用


这篇文档就简单记录哈ES中的聚合分析,包括指、、。其实就是数据库中的各类分析函数,比如、、、y、g等等。主要应用在一些统计分析业务中。


查询建筑最高的楼层

 
 
 

如果某个文档中缺少 floor1字段,则设置该字段的值为 6。

也可以通过脚本来查询最大值

 

使用脚本时,可以先通过 去判断文档是否有对应的属性。

统计最小值,用法和 Max Aggregation 基本一致

 

脚本

 
 

统计平均值

 
 

求和

 
 

cardinality aggregation 用于基数统计。类似于 SQL 中的 distinct count(0)。

text 类型是分析型类型,默认是不允许进行聚合操作的,如果相对 text 类型进行聚合操作,需要设置其 fielddata 属性为 true,这种方式虽然可以使 text 类型进行聚合操作,但是无法满足精准聚合,如果需要精准聚合,可以设置字段的子域为 keyword。

  • 1、方式一
    定义 books 索引
 

重新插入数据,然后查询出版社的总数量

 
 
  • 2、方式二
 
 
 

基本统计,一次性返回 count、max、min、avg、sum

 
 
 

高级统计,比 stats 多出来:平方和、方差、标准差、平均值加减两个标准差的区间

 
 

百分位统计

 
 

可以按照字段统计文档数量(包含指定字段的文档数量

 
 
 

Terms Aggregation 用于分组聚合,例如,统计各个出版社出版的图书总数量:

 
 

统计不同出版社所出版的图书的平均价格

 
 
 

过滤器聚合。可以将符合过滤器中条件的文档分到一个桶中,然后可以求其平均值。

例如查询书名中包含 java 的图书的平均价格

 
 

多过滤器聚合。过滤条件可以有多个。

例如查询书名中包含 java 或者 office 的图书的平均价格

 
 

按照范围聚合,在某一个范围内的文档数统计。

ElasticSearch7.x入门教程之全文搜索聚合分析(十)

例如统计图书价格在 0-50、50-100、100-150、150以上的图书数量

 
 

Range Aggregation 也可以用来统计日期,但是也可以使用 Date Range Aggregation,后者的优势在于可以使用日期表达式。

构造数据

 

统计一年前到一年后的博客数量

 

1、12M/M 表示 12 个月。
2、1y/y 表示 1年。
3、d 表示天。

时间直方图聚合。

例如统计各个月份的博客数量

 
 

空值聚合。

统计所有没有 price 字段的文档

 
 

可以根据父子文档关系进行分桶。

查询子类型为 student 的文档数量

 
 

对地理位置数据做统计。

例如查询(34.288991865037524,108.9404296875)坐标方圆 600KM 和 超过 600KM 的城市数量

 
 

IP 地址范围查询

 
 

管道聚合相当于在之前聚合的基础上,再次聚合。

计算聚合平均值。

例如,统计每个出版社所出版图书的平均值,然后再统计所有出版社的平均值

 
 

统计每个出版社所出版图书的平均值,然后再统计平均值中的最大值

 
 

统计每个出版社所出版图书的平均值,然后再统计平均值中的最小值

 
 

统计每个出版社所出版图书的平均值,然后再统计平均值之和

 
 

统计每个出版社所出版图书的平均值,然后再统计平均值的各种数据

 
 
 
 
 

     本文地址:http://w.yusign.com/tjnews/7.html    述古往 http://w.yusign.com/static/ , 查看更多
 
特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

举报收藏 0打赏 0
 
更多>同类生活信息

相关文章
最新文章
推荐文章
推荐图文
生活信息
点击排行
{
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号