elasticsearch将排序应用于查询,选择前N个进行聚合

时间:2016-11-30 04:06:21

标签: elasticsearch

下面的查询会聚合查询的整个结果,而大小只影响返回的内容而不是聚合内容。

如何修改搜索,以便排序后只有前N个结果由平均聚合处理?

这似乎是一个如此简单的要求,我希望它是可能的,但到目前为止我所有的努力都失败了,关于SO的类似问题没有得到答复。

{
  "size": 0,
  "query": {
    "constant_score": {
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "jobType": "LiveEventScoring"
              }
            },
            {
              "term": {
                "host": "MTVMDANS"
              }
            },
            {
              "term": {
                "dataSourceCode": "AU_VIRT"
              }
            },
            {
              "term": {
                "measurement": "EventDataLoadFromCacheDuration"
              }
            }
          ]
        }
      }
    }
  },
  "sort": {
    "timestamp": {
      "order": "desc"
    }
  },
  "aggs": {
    "avgDuration": {
      "avg": {
        "field": "elapsedMs"
      }
    }
  }
}

0 个答案:

没有答案