使用不同的订单在弹性搜索中查询聚合性能?

时间:2017-06-29 04:53:19

标签: elasticsearch lucene aggregation

我有一个要求说我有一组特定于不同配置的文档,我需要返回基于configVersion的最新配置。但我还有其他需要匹配的查询参数。在这种情况下,下面哪一项将是更快的性能。

1)首先使用aggregate列出基于configVersion的最新配置,然后应用查询来获取。 2)首先应用查询以获取匹配的记录,然后应用聚合。

选项1:

{
  "size": 10000,

    "aggs": {
    "finalFilter": {
      "terms": {
        "field": "configName",
        "size": 10000
      },
      "aggs": {
        "latest": {
          "top_hits": {
            "size": 1,
            "sort": {
              "configVersion": "desc"
            }
          }
        }
      }
    }
  },
  "query": {
    "bool": {
      "filter": {
        "bool": {
          "must": [
            {
                "term": {
                   "configName": "configuration1"
                }

            },
            {
              "term": {
                "Application": "Google"
              }
            },

            {
              "term": {
                "platform": "windows"
              }
            },
            {
              "term": {
                "ApplicationVersion": "1.1"
              }
            },
            {
              "term": {
                "country": "uk"
              }
            }
          ]
        }
      }
    }
  }
}

选项2:

{ "size": 10000, "query": { "bool": { "filter": { "bool": { "must": [ { "term": { "configName": "configuration1" } }, { "term": { "Application": "Google" } }, { "term": { "platform": "windows" } }, { "term": { "ApplicationVersion": "1.1" } }, { "term": { "country": "uk" } } ] } } } }, "aggs": { "finalFilter": { "terms": { "field": "configName", "size": 10000 }, "aggs": { "latest": { "top_hits": { "size": 1, "sort": { "configVersion": "desc" } } } } } } }

由于 Sushma

0 个答案:

没有答案