目录

目标

ES版本信息

官方文档

实战

新增测试数据

基本语法

百分数分桶聚合


目标

掌握Pipeline aggregations(管道聚合,相当于MySQL中的having )的基本语法。它比另外两种类型的聚合用得较少,这里只举了少量案例供大家参考分析。Pipeline aggregations分为两类:

  • Parent(父级):结果内嵌到现有的聚合结果中。
  • Sibling(兄弟级):结果和现有的聚合结果同级。

ES版本信息

7.17.5


官方文档

Pipeline aggregationshttps://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-aggregations-pipeline.html


实战

新增测试数据

#图书馆数据库
PUT /library_db
{"settings": {"index": {"analysis.analyzer.default.type": "ik_max_word"}}
}PUT /library_db/_bulk
{"index":{"_id":"1"}}
{"id":1,"type":"玄幻","name":"诛仙","words_num":120,"chapter_num":600,"completion_time":"2000-09-01","author":"萧鼎","prices":32.12}
{"index":{"_id":"2"}}
{"id":2,"type":"玄幻","name":"诛仙前传:蛮荒行","words_num":30,"chapter_num":67,"completion_time":"2020-09-01","author":"萧鼎","prices":23.12}
{"index":{"_id":"3"}}
{"id":3,"type":"武侠","name":"天龙八部","words_num":80,"chapter_num":120,"completion_time":"1995-09-01","author":"金庸","prices":52.1}
{"index":{"_id":"4"}}
{"id":4,"type":"武侠","name":"射雕英雄传","words_num":67,"chapter_num":95,"completion_time":"1998-01-01","author":"金庸","prices":4.12}
{"index":{"_id":"5"}}
{"id":5,"type":"武侠","name":"神雕侠侣","words_num":75,"chapter_num":76,"completion_time":"2000-01-01","author":"金庸","prices":32.8}
{"index":{"_id":"6"}}
{"id":5,"type":"武侠","name":"倚天屠龙记","words_num":83,"chapter_num":130,"completion_time":"2003-01-01","author":"金庸","prices":100.12}
{"index":{"_id":"7"}}
{"id":7,"type":"玄幻","name":"凡人修仙传","words_num":600,"chapter_num":3000,"completion_time":"2018-01-01","author":"忘语","prices":120.12}
{"index":{"_id":"8"}}
{"id":8,"type":"玄幻","name":"魔天记","words_num":159,"chapter_num":400,"completion_time":"2019-01-01","author":"忘语","prices":11.12}
{"index":{"_id":"9"}}
{"id":9,"type":"都市异能","name":"黄金瞳","words_num":220,"chapter_num":400,"completion_time":"2019-01-01","author":"打眼","prices":74.5}
{"index":{"_id":"10"}}
{"id":10,"type":"玄幻","name":"将夜","words_num":210,"chapter_num":600,"completion_time":"2014-01-01","author":"血红","prices":32.0}
{"index":{"_id":"11"}}
{"id":11,"type":"军事","name":"亮剑","words_num":120,"chapter_num":100,"completion_time":"2012-01-01","author":"都梁","prices":15.0}

基本语法

需求一:求每个作者下面字数最多的小说的字数,按照作品数量降序排序。

分析:第一步求出每个作者的小说数量,按照降序排序;第二步求出每个作者下字数最多的小说的字数。

POST /library_db/_search
{"size": 0,"aggs": {"author_group": {"terms": {"field": "author.keyword","size": 10,"order": {"_key": "desc"}},"aggs": {"max_words_num": {"max": {"field": "words_num"}}}}}
}

需求二:求小说的每个类型的平均字数,求出最大的平均字数。

POST /library_db/_search
{"size": 0,"aggs": {"author_group": {"terms": {"field": "type.keyword","size": 10,"order": {"_key": "desc"}},"aggs": {"avg_words_num": {"avg": {"field": "words_num"}}}},"max_avg_words_num":{"max_bucket": {"buckets_path": "author_group>avg_words_num"}}}
}

百分数分桶聚合

需求:求小说的每个类型的平均字数,求出平均字数的百分位。

POST /library_db/_search
{"size": 0,"aggs": {"author_group": {"terms": {"field": "type.keyword","size": 10,"order": {"_key": "desc"}},"aggs": {"avg_words_num": {"avg": {"field": "words_num"}}}},"percentiles_avg_words_num":{"percentiles_bucket": {"buckets_path": "author_group>avg_words_num","percents": [ 25.0, 50.0, 75.0,100 ]  }}}
}

ES聚合之Pipeline聚合语法讲解相关推荐

  1. MongoDB聚合查询 Pipeline 和 MapReduce

    MongoDB聚合查询 MongoDB聚合查询 什么是聚合查询 Pipeline聚合管道方法 聚合流程 详细流程 聚合语法 常用聚合管道 $count $group $match $unwind $p ...

  2. ES聚合之Bucket聚合语法讲解

    目录 目标 ES版本信息 官方文档 实战 新增测试数据 基本语法 先过滤再分桶聚合 按照范围聚合 Histogram(直方图/柱状图) 嵌套分桶聚合 Date range aggregation(日期 ...

  3. ES的Query的DSL语法Filter DSL聚合分析

    1 查询所有(match_all query) GET /lagou-company-index/_search { "query":{ "match_all" ...

  4. es的聚合mysql聚合速度_Elasticsearch(8) --- 聚合查询(Metric聚合)

    摘要: quot;:0,"aggs":{"stats_salary":{"stats":{"field":"s ...

  5. Elasticsearch(三)——Es搜索(简单使用、全文查询、复合查询)、地理位置查询、特殊查询、聚合操作、桶聚合、管道聚合

    Elasticsearch(三)--Es搜索(简单使用.全文查询.复合查询).地理位置查询.特殊查询.聚合操作.桶聚合.管道聚合 一.Es搜索 这里的 Es 数据博主自己上网找的,为了练习 Es 搜索 ...

  6. Oracle中的within,Oracle函数 --聚合函数中的语法within group

    Oracle的聚合函数一般与group by 联合使用,但一般通过group by 聚合 但某些聚合函数会后跟 WITHIN GROUP (ORDER BY expr [ DESC | ASC ] [ ...

  7. estemplate 导入MySQL_[数据库]es~通过ElasticsearchTemplate进行聚合操作

    [数据库]es~通过ElasticsearchTemplate进行聚合操作 0 2020-08-24 17:00:38 聚合操作,我们可以对数据进行分组的求和,求数,最大值,最小值,或者其它的自定义的 ...

  8. Es elasticsearch 十七 Java api 实现聚合 几个聚合示例 sql 开启许可 新特效 java 实现es7 sql 功能

    目录 Java api 实现聚合 依赖 简单聚合按照颜色分组获取每个卖出数量 聚合每个颜色卖出数量,及平均价格(每个分桶子聚合) 按照颜色分组 ,获取销售数量,avg min max sum 按照60 ...

  9. Es 根据时间分组聚合 (趋势图 折线图数据)

    DSL 语句 {"size": 0,"query": {"bool": {"must": [{"range&q ...

最新文章

  1. eclipse git插件配置
  2. android系统可以破吗,你的手机系统破到什么程度?一键查安卓漏洞
  3. 菜鸟教程之Microsoft Windows Powershell
  4. Kafka系统的组件、角色以及和zookeeper的关系
  5. 餐饮水单打印软件_开发一款餐饮手机app系统软件什么价格?有哪些方面需要考虑?...
  6. 环,模,补码,负数的表示与减法实现
  7. C# .Net ListT中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的区别,ListT删除汇总
  8. kafka0.8消费者实例 1
  9. MongoDB 下载和安装
  10. veeam的备份策略(每周6增量备份,每周日合成全量备份)
  11. 0xC0000005: 读取位置 0x00000000 时发生访问冲突
  12. 计算机网络复习03——数据链路层
  13. Python对文件进行重命名
  14. 程序员如何巧用Excel提高工作效率
  15. python算法动画_这可能是史上最全的Python算法集!
  16. CameraCaptureSession
  17. 【路径规划】基于matlab蚁群优化遗传算法机器人栅格地图最短路径规划【含Matlab源码 1581期】
  18. 2014年10月23日(账本软件)
  19. 大不列颠百科全书Encyclopaedia Britannica Ultimate 2014光盘镜像
  20. 对象赋值时this指向问题 obj1.say = obj2.say;obj1.say()

热门文章

  1. PHP数组foreach遍历输出例子详解
  2. NoteExpress数据库备份和转移
  3. disabled属性
  4. go 所有routine完成后才退出
  5. depthwise conv 和 pointwise conv
  6. plupload断点续传 php,Plupload 文件断点续传,文件分块上传
  7. 神策数据荣获“MarTech 领域最具商业合作价值企业”称号
  8. uni-app入门:WXML数据绑定
  9. python一元线性回归
  10. Mushroom的序列.