弹性搜索聚合需要很长时间


Elasticsearch aggregation taking long time

我正在数据集中运行值计数聚合和基数聚合,并使用以下查询。

GET my_index/my_type/_search
{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [{
              "range": {
                "time": {
                  "gt": "2015-03-04 00:00:00",
                  "lt": "2015-03-04 23:59:59"
                }
              }
            }
          ],
          "should": [
            {
              "term": {
                "andi.raw": "1d3d7bac8ce4c620"
              }
            }
          ]
        }
      }
    }
  },
  "aggs": {
    "user_count": {
      "cardinality": {
        "field": "andi.raw"
      }
    }
  }
}

我正在不同日期的循环中运行它,并且时间范围将是一天,术语过滤器有 50 个术语 (andi.raw 而不是 50 个值)。一个这样的迭代需要大约 2.5 秒来加载,而我大部分时间都有近 50-80 次迭代。所以这需要很多时间。有没有优化它以提高性能?

你的询问对我来说看起来很激烈。我有一组类似的查询,多搜索 API 为我节省了几秒钟。

查看多搜索 API