Elasticsearch Avg Aggregation 平均聚合

发布于 2021-06-14 12:32:05 字数 1645 浏览 1240 评论 0

平均聚合的聚合类型是 avg,一个单值度量聚合,计算从聚合文档中提取的数值的平均值。这些值可以从文档中的特定数字字段提取,也可以由提供的脚本生成。

从文档中的特定数字字段提取

GET company_es/_search
{
  "aggs": {
  "avg_capital_number": {//这个名字是自己随便取的
    "avg": {//聚合类型是avg(平均数)
    "field": "capitalNumber"//单值聚合
    }
  }
  }
}

------------------------------返回文档如下---------------------------------------
...
"aggregations" : {
  "avg_capital_number" : {//这个名字是搜索的时候定义的
    "value" : 454.9986790682733
  }
  }


缺少参数定义了应该如何处理缺少值的文档。默认情况下,它们将被忽略,但也可以将它们视为具有值
GET company_es/_search
{
  "aggs": {
  "avg_capital_number": {
    "avg": {
    "field": "capitalNumber"
    "missing": 10//缺少值处理
    }
  }
  }
}

基于脚本计算平均分数

GET company_es/_search
{
  "aggs": {
  "avg_capital_number": {
    "avg": {
    "script": {
      "source": "doc.capitalNumber.value"
    }
    }
  }
  }
}

------------------------------返回文档如下---------------------------------------
...
"aggregations" : {
  "avg_capital_number" : {
    "value" : 454.9986790682733
  }
  }


这将把脚本参数解释为内联脚本,使用简单的脚本语言,没有脚本参数。要使用存储的脚本,请使用以下语法
GET company_es/_search
{
  "aggs": {
  "avg_capital_number": {
    "avg": {
    "script": {
      "id":"my_script",//存储的脚本id,
      "params":{
      "field": "capitalNumber"
      }
    }
    }
  }
  }
}

对分数进行修正,我们可以使用值脚本来得到新的平均值
GET company_es/_search
{
  "aggs": {
  "avg_capital_number": {
    "avg": {
    "field": "capitalNumber",
    "script": {
      "lang": "painless",
      "source": "_value * params.correction",
      "params":{
      "correction" : 1.2
      }
    }
    }
  }
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

一梦浮鱼

文章 0 评论 0

mb_Z9jVigFL

文章 0 评论 0

伴随着你

文章 0 评论 0

耳钉梦

文章 0 评论 0

18618447101

文章 0 评论 0

蜗牛

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文