搜索设置编辑

以下专家设置可以用来管理全局搜索和聚合限制。

indices.query.bool.max_clause_count

[8.0.0] 在 8.0.0 中已弃用。 (静态,整数) 此已弃用设置无效。

Elasticsearch 现在将使用基于搜索线程池大小和分配给 JVM 的堆大小的启发式方法动态设置查询中允许的最大子句数。此限制的最小值为 1024,在大多数情况下会更大(例如,具有 30Gb RAM 和 48 个 CPU 的节点将具有大约 27,000 的最大子句数)。更大的堆会导致更高的值,更大的线程池会导致更低的值。

应尽可能避免使用包含许多子句的查询。如果您之前已提高此设置以适应繁重的查询,则可能需要增加 Elasticsearch 可用的内存量,或减小搜索线程池的大小,以便为每个并发搜索提供更多内存。

在以前的 Lucene 版本中,您可以通过将布尔查询相互嵌套来绕过此限制,但现在该限制基于查询中所有叶查询的总数,而此解决方法将不再有效。

search.max_buckets

(动态,整数) 单个响应中允许的 聚合桶 的最大数量。默认为 65,536。

尝试返回超过此限制的请求将返回错误。

indices.query.bool.max_nested_depth

(静态,整数) 查询的最大嵌套深度。默认为 30

此设置限制查询的嵌套深度。查询的深度嵌套可能会导致堆栈溢出错误。