在Elasticsearch中使用聚合度量标准作为过滤器

时间:2015-03-09 12:44:01

标签: elasticsearch

我有一个包含脚本运行日志的数据库。其中一些日志包含StartTime和EndTime字段。

对于每种脚本(id),我想查询具有上述字段的那些脚本,并且它们的运行时间(EndTime - StartTime)超出其类型(id)的97.7百分位。

我设法使用以下查询返回每个脚本ID对应于第97.7百分位数的持续时间:

{
  "query": {
    "filtered": {
      "filter": {
        "and": [
          { "exists": { "field": "StartTime"} },
          { "exists": { "field": "EndTime"} }
        ]
      } 
    }
  },
  "aggs": {
    "script_run_percentiles": {
      "terms": {
        "field":"ID"
      },
      "aggs": {
        "duration_percentiles": {
          "percentiles": {
            "script": "doc['EndTime'] - doc['StartTime']",
            "percents": ["97.7"]
          }
        }
      }
    }
  }  
}

如何扩展此查询以返回超过此百分位数的脚本运行?我认为这必须使用过滤器完成,但我想知道是否可以过滤指标?

0 个答案:

没有答案