索引设置
索引设置是适用于单个索引的设置。这样的设置将从 index.
开始。该规则的例外是 number_of_shards
和 number_of_replicas
,它们也以 index.number_of_shards
和 index.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 严格验证设置名称,它将拒绝任何尝试使用未知设置应用索引设置(由于拼写错误或缺少插件)。这两个语句都适用于动态更改索引设置和创建时。