The following expert settings can be set to manage global search and aggregation limits.
(Static, integer) Maximum number of clauses a query can contain. Defaults to
This setting limits the total number of clauses that a query tree can have. The default of 4096 is quite high and should normally be sufficient. This limit applies to the rewritten query, so not only
boolqueries can contribute high numbers of clauses, but also all queries that rewrite to
boolqueries internally such as
fuzzyqueries. The limit is in place to prevent searches from becoming too large, and taking up too much CPU and memory. In case you’re considering increasing this setting, make sure you’ve exhausted all other options to avoid having to do this. Higher values can lead to performance degradations and memory issues, especially in clusters with a high load or few resources.
Elasticsearch offers some tools to avoid running into issues with regards to the maximum number of
clauses such as the
terms query, which allows querying many distinct
values while still counting as a single clause, or the
text fields, which allows executing prefix queries that expand to a high
number of terms as a single term query.
(Static, integer) Maximum nested depth of bool queries. Defaults to
This setting limits the nesting depth of bool queries. Deep nesting of boolean queries may lead to stack overflow.