мне нужно, чтобы получить все документы, которые содержат, по меньшей мере, один элемент из списка более чем 1024.Проблем с большим BOOL на elasticsearch
Моего запроса в основном BOOL запрос с должны и minimum_should_match : 1.
Elasticsearch maxClauseCount по умолчанию установлен в 1024. Я попытался установить его на 4096 и конфигурация выглядит нормально:
Я прошу http://myserver:9200/my_index/_settings и получить:
... "query": { "bool": { "max_clause_count": "4096" } } ...,
Но если я попытаюсь еще получить TooManyClauses[maxClauseCount is set to 1024]
в моих журналах.
1-й вопрос: Почему это противоречиво?
Я прочитал, что для некоторых случаев лучше использовать фильтр вместо большого BOOL:
В общем, я бы рекомендовал, чтобы переписать этот запрос, чтобы использовать термины фильтр вместо булева запроса https://discuss.elastic.co/t/too-many-clauses-maxclausecount-is-set-to-1024/61968
второй вопрос: Как я могу использовать фильтр, чтобы получить ту же логику, что мультипликатор должен BOOL на моем примере? Какой лучший фильтр bool или фильтрованный фильтр для этого случая?