elasticsearch聚合案例--分组、求最大值再求最大值的均值
来源:互联网 发布:linux内核缓冲区 编辑:程序博客网 时间:2024/05/21 11:04
一、需求
A、B、C代表3个用户,第二列代表各自的得分,求A、B、C的最好成绩以及A、B、C最好成绩的均值
A 10A 11A 13B 11B 11B 12C 10C 10C 11C 15
二、思路
先terms分组,求最大值,最后加一个pipeline均值。一开始想用bucket_script解决,实验发现走不通,但是bucket_script在聚合结果之上操作很有用
三、测试数据
PUT sport { "mappings": { "grade": { "properties": { "user": { "type": "keyword" }, "grade":{ "type": "integer" } } } }}PUT sport/grade/1{ "user":"A", "grade":10}PUT sport/grade/2{ "user":"A", "grade":11}PUT sport/grade/3{ "user":"A", "grade":13}PUT sport/grade/4{ "user":"B", "grade":11}PUT sport/grade/5{ "user":"B", "grade":11}PUT sport/grade/6{ "user":"B", "grade":12}PUT sport/grade/7{ "user":"C", "grade":10}PUT sport/grade/8{ "user":"C", "grade":10}PUT sport/grade/9{ "user":"C", "grade":11}PUT sport/grade/10{ "user":"C", "grade":15}
四、聚合
GET sport/_search{ "size": 0, "aggs": { "avg_score": { "terms": { "field": "user" }, "aggs": { "max_score": { "max": { "field": "grade" } } } }, "avg_max_score": { "avg_bucket": { "buckets_path": "avg_score>max_score" } } }}
结果:
{ "took": 4, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 10, "max_score": 0, "hits": [] }, "aggregations": { "avg_score": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "C", "doc_count": 4, "max_score": { "value": 15 } }, { "key": "A", "doc_count": 3, "max_score": { "value": 13 } }, { "key": "B", "doc_count": 3, "max_score": { "value": 12 } } ] }, "avg_max_score": { "value": 13.333333333333334 } }}
阅读全文
2 0
- elasticsearch聚合案例--分组、求最大值再求最大值的均值
- SQL分组求最大值
- 按字段分组求最大值
- 求每行的最大值
- 求函数的最大值
- 求函数的最大值
- 求n的最大值
- 求int 的最大值
- 求最大值的方法
- 求数组的最大值
- 求最大值
- 求最大值
- 求最大值
- 求最大值
- 求最大值
- 求最大值
- 求最大值
- 求最大值
- 【二叉树】字符串打印树结构/路径【606. Construct String from Binary Tree】【257. Binary Tree Paths】【102. Binary Tree Le
- mybatis知识点总结之数据源和连接池
- 日志系列--计量日志处理方案
- <c:forEach> 合计金额
- Mac下使用Aria2下载教程----迅雷和百度盘终极解决方案
- elasticsearch聚合案例--分组、求最大值再求最大值的均值
- C# using语句的使用
- ios-正则表达式使用的三种方法和正则表达式
- 认识各种锁
- 洛谷P1421 小玉买文具
- Respberry pi 安装中文输入法
- 刽子手游戏,紫书P79Uva489
- 导入导出项目到myeclipse中
- Python