elasticsearch 弹性 搜索 - 设置 最 大 子句 计数

a9wyjsp7  于 2022-11-22  发布在  ElasticSearch
关注(0)|答案(4)|浏览(602)

我在elasticsearch中有一个很大的搜索词查询,所以得到too_many_clauses: maxClauseCount is set to 1024
我试着在elasticsearch.yml中增加它,增量为

index:
query:
bool:
max_clause_count: 10240

和通过

curl -XPUT "http://localhost:9200/plastic/_settings" -d '{ "index" : { "max_clause_count" : 10000 } }'

但是没有任何效果我的索引被命名为塑料。

oewdyzsn

oewdyzsn1#

在Elasticsearch 5中,index.query.bool.max_clause_count已被弃用/删除。
改为在elasticsearch.yml文件中插入indices.query.bool.max_clause_count : n(其中n -新支持的子句数)。

**注意:**此处为文档链接.

vshtjzan

vshtjzan2#

背景

***注意:***此答案中给出的建议仅适用于低于5.5的Elasticsearch版本。所描述的方法引用了最终在5.5中删除的属性。

搜索设置

设置index.query.bool.max_clause_count已被删除。为了设置布尔子句的最大数目,应改为使用indices.query.bool.max_clause_count

原始答案

增加以下内容:

index.query.bool.max_clause_count: 10240

到集群的每个节点上的文件elasticsearch.yml,然后当然重新启动节点(配置文件中的任何更改都需要重新启动)。

fjaof16o

fjaof16o3#

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

indices.query.bool.max_clause_count: 4096
dced5bon

dced5bon4#

如果您希望在云部署中更改您的云elasticsearch.yml文件,请参阅Add Elasticsearch user settings以了解实现此操作所需遵循的步骤以及允许您进行的更改。但是,请注意,允许您在云部署中更改的设置是有限制的。
如果你想对本地集群进行修改,你可以直接在elasticsearch.yml文件中进行修改,该文件位于“elasticsearch-x.x.x/config/elasticsearch.yml”,只需在该文件中添加一行所需的设置即可。例如,如果你想将indices.query.bool.max_clause_count的默认值1024修改为4096,您可以添加行索引.查询.布尔.最大子句计数:4096到您的ElasticSearch.yml文件。
请记住,indices.query.bool.max_clause_count的默认值是1024,尽管elasticsearch.yml确实显式包含一行声明此值,但它会将1024作为默认值。因此,更改此值的唯一方法是显式添加一行“indices.query.bool.max_clause_count:4096"。通过在您自己的elasticsearch.yml文件中包含此行并指定首选值,您最终修改了群集的值“indexs.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的值

相关问题