获取百分位聚合的样本文档

时间:2017-09-15 18:47:28

标签: elasticsearch

是否可以使用elasticsearch获取代表聚合中计算的百分位数的文档示例?

"agg_percentile": {
    "percentiles": {
        "field": "my_value",
        "percents": [
            10,
            50,
            95
        ]
    }
}

鉴于此聚合,我想得到每个百分位内的一个文档的示例。

例如:

"values": [
     {
          "key": 1.0,
          "value": 1462.8400000000001,
          "hit": {
             "_source":...
         }
      },

因此,您将获得一个文档的样本,该文档会产生此百分位数。

在一个查询中是否可以? 我总是可以进行第二次查询,搜索my_value大于第9个百分位数且小于第11个百分位数。但我想在一个查询中做到这一点。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试Top hits Aggregation

{
  "aggregations": {
    "agg_percentile": {
      "percentiles": {
        "field": "my_value",
        "percents": [
          10,
          50,
          95
        ],
        "keyed": false   # --> pay attention, you now will get each percentile in seperate bucket
      },
      "aggregations":{
        "top_hits":{
          "size": 1
        }
      }
    }
  }
}

请注意,我们将keyed参数设置为false

docs中所述 - 它会将每个百分位数与单个存储桶分开 - 这使我们能够为每个百分位数添加另一级别的聚合 - Top Hits