资讯专栏INFORMATION COLUMN

Elasticsearch 参考指南(Avg聚合)

terro / 1309人阅读

摘要:聚合一个单值指标聚合,它计算从聚合文档中提取的数值的平均值,这些值可以从文档中的特定数字字段中提取,也可以由提供的脚本生成。在字段中没有值的文档将与值为的文档落入同一桶中。

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的文档落入同一桶中。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/34338.html

相关文章

  • Elasticsearch 参考指南(目录)

    摘要:为了防止用户覆盖中指定的索引,将此设置添加到文件中默认值为,但当设置为时,将拒绝在请求体中指定的显式索引的请求。所有都是单索引,参数接受单个索引名,或指向单个索引的别名。查询子句的行为取决于它们是用于查询上下文还是过滤器上下文。 Elasticsearch 参考指南 Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,它允许你快速,近实时地存储,搜索和分析大量数据,它通...

    liaosilzu2007 评论0 收藏0
  • Elasticsearch 参考指南聚合介绍)

    摘要:聚合介绍聚合框架帮助提供基于搜索查询的聚合数据,它基于称为聚合的简单构建块,可以进行组合以构建复杂的数据摘要。指标对一组文档进行跟踪和计算指标的聚合。管道聚合其他聚合的输出及其相关指标的聚合。 聚合介绍 聚合框架帮助提供基于搜索查询的聚合数据,它基于称为聚合的简单构建块,可以进行组合以构建复杂的数据摘要。 聚合可以看作是在一组文档上构建分析信息的工作单元,执行的上下文定义了这个文档集是...

    Youngs 评论0 收藏0
  • Elasticsearch 参考指南(探索你的数据)

    摘要:参数指示使用每个文档的字段升序对结果进行排序,参数再次告诉返回漂亮的结果。我们可以在查询中同时组合,和子句,此外,我们可以在任何这些子句中组合查询来模仿任何复杂的多级布尔逻辑。上一篇修改你的数据下一篇安装 探索你的数据 样本数据集 现在我们已经了解了基础知识,让我们尝试更真实的数据集,我准备了一份关于客户银行账户信息的虚构JSON文档样本,每个文档都有以下模式: { accou...

    paulli3 评论0 收藏0
  • elasticsearch,golang客户端聚合查询

    摘要:目前在做的监控项目中有个对的聚合查询的需求需要用语言实现,需求就是查询某个在一个时间范围内,各个监控指标取时间单位内的平均值。上代码指定和时间范围需要聚合的指标单位时间和指定字段查询语句结果输出第一种方式第二种方式 目前在做的监控项目中有个对es的聚合查询的需求,需要用go语言实现, 需求就是查询某个IP在一个时间范围内,各个监控指标取时间单位内的平均值。有点拗口,如下是es的查询语句...

    高璐 评论0 收藏0
  • elasticsearch中数据聚合问题

    摘要:由于项目中最近用到了,并且用到的聚合功能,就深入研究了一下,中的聚合主要有四种和。 由于项目中最近用到了elasticsearch,并且用到elasticsearch的聚合(Aggregation)功能,就深入研究了一下,elasticsearch中的聚合主要有四种:Bucketing Aggregation、Metric Aggregation、Matrix Aggregation和...

    Juven 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<