在我的数据流中,我正在尝试从先前的术语聚合中检索文档的子集,但是在我的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。
谢谢!
答案 0 :(得分:2)
而不是使用术语使用条款过滤器它将解决问题
OR index.query.bool.max_clause_count:增加到更高的值(*不推荐)
http://george-stathis.com/2013/10/18/setting-the-booleanquery-maxclausecount-in-elasticsearch/