如何使用Elastic Search计算一个字段与另一个字段分组的百分比?我已经试过了:

GET /dealergeo/sale/_search
{
  "size": 0,
  "aggs": {
    "dom_rank": {
      "percentiles": {
        "field": "avgdom"
      },
      "aggs": {
        "name": {
          "terms": {
            "field": "make",
            "size": 10
          }
        }
      }
    }
  }
}

所以基本上我想按make分组所有数据,然后计算avgdom的百分位数,但这给出了一个错误:



我在这里想念什么?还是使用 flex 搜索可能?谢谢你的帮助!

最佳答案

刚刚弄清楚,我需要将percentile聚合包装在terms聚合内,而不是用其他方式包装:

GET /dealergeo/sale/_search
{
  "size": 0,
  "aggs": {
    "make_agg": {
      "terms": {
        "field": "make",
        "size": 5
    },
    "aggs": {
      "dom_rank": {
        "percentiles": {
          "field": "avgdom"
     }
    }
   }
  }
 }
}

09-11 11:01