查询大量术语而不扩展maxClauseCount

时间:2017-03-21 00:25:14

标签: elasticsearch

在我的数据流中,我正在尝试从先前的术语聚合中检索文档的子集,但是在我的ES群集中​​达到maxClauseCount限制。跟进查询是这样的:

GET dataset/_search
{
  "size": 2000,
  "query": {
    "bool": {
      "must": [
        (a filter or two)...,
        {
          "terms":{ 
              "otherid":[
                  "789e18f2-bacb-4e38-9800-bf8e4c65c206",
                  "8e6967aa-5b98-483e-b50f-c681c7396a6a",
                  ...
              ]
           }
         }
      ]}
   }
}

在我的研究中,我遇到了一个查找 - 遗憾的是我们无法使用 - 以及ids查询。

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-ids-query.html

从实验中可以看出,ids查询并没有共享查询条件的限制(可能它没有转换为条款子句)。如果有一种很好的方法可以在不使用ids字段的情况下实现与ids查询类似的功能,那么你们是否知道呢。

我的ES版本是5.0。

谢谢!

1 个答案:

答案 0 :(得分:2)

而不是使用术语使用条款过滤器它将解决问题

OR index.query.bool.max_clause_count:增加到更高的值(*不推荐)

http://george-stathis.com/2013/10/18/setting-the-booleanquery-maxclausecount-in-elasticsearch/