如何获得大于百分位聚合的文档数量?

时间:2016-01-02 16:53:17

标签: elasticsearch

这里有一个ElasticSearch DSL查询,用于返回名为duration的字段的第90个百分位值(持续时间是以毫秒为单位的网络服务时间响应持续时间,但我们不在乎......)

{
  "query": {
    "match_all": {}
  },
  "aggs": {
    "percentile90": {
      "percentiles": {
        "field": "duration",
        "percents": [
          90
        ]
      }
    }
  }
}

我需要计算持续时间值大于第90个百分位持续时间值的文档数量。

2 个答案:

答案 0 :(得分:0)

您要求的是类似于SQL中的HAVING子句。 ElasticSearch(2.X AFAIK)不支持此功能。你必须用两个请求来做。

答案 1 :(得分:0)

  

我需要计算持续时间的文件数量   值大于第90百分位持续时间值。

仅根据百分位数的定义,这不是文件总数的10%吗?这是假设持续时间是浮点数,因此可以预期是唯一的。

另一方面,如果你想计算一个花费超过90%的人的平均持续时间,你确实需要使用两个查询。