Elastic Search 中的百分比聚合仅给出百分位数值,就像缺失参数中给出的值一样

问题描述 投票:0回答:1

我只是简化了我的查询,如下

GET /index-name/_search
{
  "from": 0,
  "query": {
    "bool": {
      "filter": [
        {
          "terms": {
            "providerid": [
              2000019314,
              2000041586,
              2000060152
            ]
          }
        }
      ]
       
    }
  },
   "aggs": {
    "quality_score_percentiles": {
      "percentiles": {
        "field": "metrics.data.weightedqualityscore",
        "percents": [50,75],
        "missing": 10
      }
    }
  },
  "size": 10
}

对于给定的 3 个提供者 ID,我在响应命中中得到了 3 个文档。每个文档的加权质量分数分别为 71、72 和 67。 索引中的映射:weightedqualityscore 是索引映射中的浮点字段。

      "metrics" : {
            "type" : "nested",
            "properties" : {
              "data" : {
                "properties" : {
                 "weightedqualityscore" : {
                    "type" : "float"
                  },
                  "weightedspeedscore" : {
                    "type" : "float"
                  }
                }
              }
           }
      }

我的聚合响应仅将值显示为 10(或我在查询中缺少的参数中给出的任何值),如下所示但我的预期第 75 个百分位数值为 71.75。

"aggregations" : {
    "quality_score_percentiles" : {
      "values" : {
        "50.0" : 10.0,
        "75.0" : 10.0
      }
    }
  }

第 50 个百分位数和第 75 个百分位数都是不正确的值。正确计算 75% 的查询中存在哪些错误或缺失?

elasticsearch-aggregation percentile
1个回答
0
投票

我可以通过添加嵌套路径来解决问题,如下所示:


      "aggs": {
        "quality_score_percentiles": {
          "percentiles": {
            "field": "metrics.data.weightedqualityscore",
            "percents": [
              75
            ]
          }
        }
      },
      "nested": {
        "path": "metrics"
      }
    
© www.soinside.com 2019 - 2024. All rights reserved.