Elasticsearch - 设置max_clause_count

Evo*_*o_x 8 elasticsearch

我在弹性搜索中有一个非常大的术语查询,所以我得到了 too_many_clauses: maxClauseCount is set to 1024

我尝试在elasticsearch.yml中增加它

index:
query:
bool:
max_clause_count: 10240
Run Code Online (Sandbox Code Playgroud)

并通过

curl -XPUT "http://localhost:9200/plastic/_settings" -d '{ "index" : { "max_clause_count" : 10000 } }'
Run Code Online (Sandbox Code Playgroud)

但没有任何效果.我的索引名为plastic.

小智 20

在Elasticsearch 5中,"index.query.bool.max_clause_count"已被弃用.在elasticsearch.yml文件中插入"indices.query.bool.max_clause_count:n"(其中n - 新支持的cluses数)这里是文档的链接

  • 它尚未被弃用,已被删除.您的Elasticsearch实例将无法启动.至少它发生在5.2.2中 (3认同)

And*_*fan 10

index.query.bool.max_clause_countindices.query.bool.max_clause_count集群的每个节点的文件中.当然,重启节点(配置文件中的任何更改都需要重启).


小智 5

这也可以通过更新elasticsearch.yml文件(弹性安装的config文件夹内)中的配置来实现。

indices.query.bool.max_clause_count:4096
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您希望elasticsearch.yml在云部署中对云文件进行更改,请参阅添加 Elasticsearch 用户设置,了解实现此操作所需遵循的步骤以及允许您进行的更改。但请注意,您在云部署中可以更改的设置是有限的。

如果您想要对本地集群进行更改,您可以直接在elasticsearch.yml位于“ elasticsearch-xxx/config/elasticsearch.yml ”的文件中进行更改,只需向该文件添加一行所需的设置即可。例如,如果您想indices.query.bool.max_clause_count将其默认值 1024 更改为 4096,您可以将indices.query.bool.max_clause_count: 4096行添加到您的elasticsearch.yml文件中。

请记住,indices.query.bool.max_clause_count默认值是 1024,尽管elasticsearch.yml确实明确包含一行说明该值,但它会采用 1024 作为默认值。因此,更改此值的唯一方法是显式添加行“ indices.query.bool.max_clause_count: 4096 ”。通过包含此行并在自己的文件中指定您的首选值,您最终修改了集群的elasticsearch.yml值“ indices.query.bool.max_clause_count ”。

下图显示了如何将此行附加到示例elasticsearch.yml文件:

在此输入图像描述

添加此行并将更改保存到elasticsearch.yml文件后,启动 Elasticsearch,然后启动 Kibana(如果您使用 Kibana 与 ES 交互)。您可以通过运行以下命令来验证您的设置:GET /_cluster/settings/?include_defaults在 Kibana 中或curl -XGET "http://localhost:9200/_cluster/settings/?include_defaults"在命令行中。然后,在命令的输出中查找max_clause_count以验证值indices.query.bool.max_clause_count