搜索设置

编辑

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

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。

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

search.aggs.only_allowed_metric_scripts

(动态, 布尔值) 配置是否仅允许在脚本化指标聚合中使用显式允许的脚本。默认为 false

使用未包含在 search.aggs.allowed_inline_metric_scriptssearch.aggs.allowed_stored_metric_scripts 中的脚本的请求将返回错误。

search.aggs.allowed_inline_metric_scripts

(动态, 字符串列表) 当 search.aggs.only_allowed_metric_scripts 设置为 true 时,可以在脚本化指标聚合中使用的内联脚本列表。默认为空列表。

使用其他内联脚本的请求将返回错误。

search.aggs.allowed_stored_metric_scripts

(动态, 字符串列表) 当 search.aggs.only_allowed_metric_scripts 设置为 true 时,可以在脚本化指标聚合中使用的存储脚本的 ID 列表。默认为空列表。

使用其他存储脚本的请求将返回错误。

indices.query.bool.max_nested_depth

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

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