博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elasticsearch 参考指南(Avg聚合)
阅读量:7051 次
发布时间:2019-06-28

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

Avg聚合

一个单值指标聚合,它计算从聚合文档中提取的数值的平均值,这些值可以从文档中的特定数字字段中提取,也可以由提供的脚本生成。

假设数据由代表学生考试成绩(0到100之间)的文档组成,我们可以平均他们的分数:

POST /exams/_search?size=0{    "aggs" : {        "avg_grade" : { "avg" : { "field" : "grade" } }    }}

上面的聚合计算所有文档的平均成绩,聚合类型为avgfield设置定义要计算平均值的文档的数值字段,以上将返回以下内容:

{    ...    "aggregations": {        "avg_grade": {            "value": 75.0        }    }}

聚合的名称(上面的avg_grade)还充当从返回的响应中检索聚合结果的键。

脚本

根据脚本计算平均成绩:

POST /exams/_search?size=0{    "aggs" : {        "avg_grade" : {            "avg" : {                "script" : {                    "source" : "doc.grade.value"                }            }        }    }}

这将把script参数解释为一个inline脚本,使用painless脚本语言,并且没有脚本参数,要使用存储的脚本,请使用以下语法:

POST /exams/_search?size=0{    "aggs" : {        "avg_grade" : {            "avg" : {                "script" : {                    "id": "my_script",                    "params": {                        "field": "grade"                    }                }            }        }    }}

值脚本

结果是,这次考试的成绩远远超过了学生的水平,需要进行成绩修正,我们可以使用值脚本来获得新的平均值:

POST /exams/_search?size=0{    "aggs" : {        "avg_corrected_grade" : {            "avg" : {                "field" : "grade",                "script" : {                    "lang": "painless",                    "source": "_value * params.correction",                    "params" : {                        "correction" : 1.2                    }                }            }        }    }}

缺失值

missing参数定义了如何处理缺失值的文档,默认情况下,它们将被忽略,但也可以将它们视为有值来处理。

POST /exams/_search?size=0{    "aggs" : {        "grade_avg" : {            "avg" : {                "field" : "grade",                "missing": 10             }        }    }}

grade字段中没有值的文档将与值为10的文档落入同一桶中。

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

你可能感兴趣的文章
Lync Server Front部署(并置中介)
查看>>
Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法
查看>>
Android Studio第三十五期 - 定时器弱引用+Service的写法
查看>>
安装和配置SQL Server 2016 With SP1
查看>>
VR產業鏈與人才從業方向
查看>>
吐槽苹果的革新 iOS 7
查看>>
理解并演示:SNMP简单网络管理协议(200-120新考点)
查看>>
RHEL5中安装Oracle11gR2修改用户SHELL限制、环境配置、内核参数
查看>>
服务器双网卡导致的网络故障及解决方案
查看>>
强力促销推动移动购物崛起
查看>>
软件外包相关职业规划
查看>>
几种数据库建模工具推荐(包含开源版)
查看>>
大中型网站集群架构企业级高标准全自动实战项目征集
查看>>
7.5 TableLayout布局详解
查看>>
【虚拟化实战】存储设计之二LUN Sizing
查看>>
SCCM2012系列之八,SCCM2012客户机发现
查看>>
禁用和删除Exchange邮箱深入探讨
查看>>
QQ群排名自动吸粉,同样是玩群,为什么他们这么牛?
查看>>
nagios监控web/mysql多角度实战分享(三)
查看>>
互联网公司的项目经理:别轻易脚踩两只船
查看>>