我应该在哪里配置 max_result_window 索引设置?

5 elasticsearch elastica

我正在尝试添加到我的 elasticsearch.yml

index.max_result_window: 10000
Run Code Online (Sandbox Code Playgroud)

但问题是它不喜欢我添加index.配置(它会导致错误),这在 elastica 2.X 版中有效,但现在在 6.X 中似乎不起作用。知道如何在最近的 elastica 版本中配置索引吗?我似乎无法找到答案。

Jam*_*lio 11

max_result_window是一个动态索引级别设置,而不是特定于节点的。默认值为 10,000,因此如果这是您要设置的值,则不需要。

您可以通过更新特定索引设置或全局更新所有现有索引来调整它:

PUT _settings
{
  "index.max_result_window": 11000
}
Run Code Online (Sandbox Code Playgroud)

以上将更新所有现有索引。要使其对未来的索引生效,您需要一个针对特定索引模式(或仅 * 用于全局)的索引模板 - 例如:

PUT _template/example
{
  "index_patterns": ["settings_test*"],
  "settings": {
    "index.max_result_window": 12000
  }
}

PUT settings_test
Run Code Online (Sandbox Code Playgroud)

以上将产生以下结果:

GET settings_test
...

{
  "settings_test" : {
    "aliases" : { },
    "mappings" : { },
    "settings" : {
      "index" : {
        ...
        "max_result_window" : "12000",
        ...
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

参考:https : //www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html

  • Elastica 只是用于访问 Elasticsearch 集群的客户端 - 您表示您正在尝试更新与 Elastica 无关的“elasticsearch.yml”文件。上面的命令可以作为针对 Elasticsearch 集群的简单 curl 命令来完成,或者如果您想使用 Elastica,请查看 `setSettings` 方法,它会将上述相同的信息发送到您的 Elasticsearch 集群。参考:https://elastica.io/api/latest/classes/Elastica.Index.html#method_setSettings (2认同)