账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    elasticsearch中,带权平均数这个聚合,如果字段和权重值都是数组的时候计算公式是怎么样的?
    74
    0

    elasticsearch中,带权平均数这个聚合,如果字段和权重值都是数组的时候计算公式是怎么样的?
    出来的结果是 3.142857142857143有点理解不了

    • 数据
    [
          {
            "_index" : "exams",
            "_type" : "_doc",
            "_id" : "_-bTWm8BJi8CO_fWaZPG",
            "_score" : 1.0,
            "_source" : {
              "grade" : [
                1,
                2,
                3
              ],
              "weight" : 2
            }
          },
          {
            "_index" : "exams",
            "_type" : "_doc",
            "_id" : "qObvWm8BJi8CO_fWB71W",
            "_score" : 1.0,
            "_source" : {
              "grade" : 4,
              "weight" : 3
            }
          }
        ]
    • 请求
    POST /exams/_search
    {
        "size": 0,
        "aggs" : {
            "weighted_grade": {
                "weighted_avg": {
                    "value": {
                        "field": "grade",
                        "missing":1
                    },
                    "weight": {
                        "script": "doc.grade.value",
                        "missing":2
                    }
                }
            }
        }
    }
    • 返回值:
    {
      "took" : 5,
      "timed_out" : false,
      "_shards" : {
        "total" : 1,
        "successful" : 1,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : {
          "value" : 2,
          "relation" : "eq"
        },
        "max_score" : null,
        "hits" : [ ]
      },
      "aggregations" : {
        "weighted_grade" : {
          "value" : 3.142857142857143
        }
      }
    }
    
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 共 0 条
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部