Search settings
editSearch settings
editThe following expert settings can be set to manage global search and aggregation limits.
-
indices.query.bool.max_clause_count
-
(Static, integer) Maximum number of clauses a query can contain. Defaults to
4096
.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
bool
queries can contribute high numbers of clauses, but also all queries that rewrite tobool
queries internally such asfuzzy
queries. 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 index_prefixes
option
of text
fields, which allows executing prefix queries that expand to a high
number of terms as a single term query.
-
search.max_buckets
-
(Dynamic, integer) Maximum number of aggregation buckets allowed in a single response. Defaults to 65,536.
Requests that attempt to return more than this limit will return an error.
-
indices.query.bool.max_nested_depth
-
(Static, integer) Maximum nested depth of bool queries. Defaults to
20
.This setting limits the nesting depth of bool queries. Deep nesting of boolean queries may lead to stack overflow.