博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
elasticsearch聚合案例--分组、求最大值再求最大值的均值
阅读量:5795 次
发布时间:2019-06-18

本文共 1852 字,大约阅读时间需要 6 分钟。

一、需求

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解决,实验发现走不通,但是在聚合结果之上操作很有用

三、测试数据

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    }  }}

转载地址:http://fgbfx.baihongyu.com/

你可能感兴趣的文章
京东AI研究院何晓冬:将先进的技术和模型落地到产业
查看>>
国内首例:飞步无人卡车携手中国邮政、德邦投入日常运营
查看>>
微软将停止对 IE 8、9和10的支持
查看>>
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
有关GitHub仓库分支的几个问题
查看>>
CNCF宣布Envoy项目正式毕业
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
在我的职业生涯中,没有一种技能比SQL更有用!
查看>>
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
ApiBoot 0.1.1.RELEASE 版本发布!!!
查看>>
Java生成GUID的方法
查看>>
poj 2528 Mayor's posters(线段树+离散化)
查看>>
Webpack入门教程三十
查看>>
虚拟路由冗余协议VRRP
查看>>
故障解决:发生系统错误 67 找不到网络名
查看>>
ffmpeg中的sws_scale算法性能测试
查看>>