索引设置

索引设置是适用于单个索引的设置。这样的设置将从 index. 开始。该规则的例外是 number_of_shardsnumber_of_replicas,它们也以 index.number_of_shardsindex.number_of_replicas 的形式存在。

顾名思义,索引级设置适用于单个索引。某些设置必须在创建时应用,因为它们无法动态更改,例如 index.number_of_shards 设置,它控制索引的主分片数。

PUT /my_index
{
  "settings": {
    "index.number_of_shards": 1,
    "index.number_of_replicas": 1
  }
}

或者,以更简洁的格式,你可以在每个 . 中组合键前缀:

PUT /my_index
{
  "settings": {
    "index": {
      "number_of_shards": 1,
      "number_of_replicas": 1
    }
  }
}

以上示例将使用提供的设置创建索引。你可以使用索引 _settings 端点动态更改每个索引的设置。例如,在这里我们动态地改变 slowlog 设置在警告级别:

PUT /my_index/_settings
{
  "index": {
    "indexing.slowlog.threshold.index.warn": "1s",
    "search.slowlog.threshold": {
      "fetch.warn": "500ms",
      "query.warn": "2s"
    }
  }
}

警告 :Elasticsearch 1.x 和 2.x 没有非常严格地验证索引级别的设置名称。如果你有一个拼写错误,或者只是简单地设置了一个设置,那么它会盲目地接受它,但是否则会忽略它。Elasticsearch 5.x 严格验证设置名称,它将拒绝任何尝试使用未知设置应用索引设置(由于拼写错误或缺少插件)。这两个语句都适用于动态更改索引设置和创建时。