# Cluster Update Settings

原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.0/cluster-update-settings.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/cluster-update-settings.html)

译文链接 : [http://www.apache.wiki/display/Elasticsearch/Cluster+Update+Settings](http://www.apache.wiki/display/Elasticsearch/Cluster+Update+Settings)

贡献者 : [那伊抹微笑](/display/~wangyangting)

可以更新集群范围中指定的配置。更新的配置既可以是永久的（需要重启集群），也可以是瞬时的（不需要重启集群）。下面是一些示例 : 

```
curl -XPUT localhost:9200/_cluster/settings -d '{
    "persistent" : {
        "discovery.zen.minimum_master_nodes" : 2
    }
}'
```

或者 : 

```
curl -XPUT localhost:9200/_cluster/settings -d '{
    "transient" : {
        "discovery.zen.minimum_master_nodes" : 2
    }
}'
```

该集群响应了更新的配置。所以最后一个示例的响应将是 : 

```
{
    "persistent" : {},
    "transient" : {
        "discovery.zen.minimum_master_nodes" : "2"
    }
}'
```

可以通过分配一个 **null** 值来重新设置永久的或者瞬时的配置。如果瞬时的配置被重置了，如果可用的话永久的配置会生效。否则，**Elasticsearch** 将回滚到定义在配置文件中的配置，如果不存在，会应用默认值，下面是一个示例 : 

```
curl -XPUT localhost:9200/_cluster/settings -d '{
    "transient" : {
        "discovery.zen.minimum_master_nodes" : null
    }
}'
```

重置配置不会包含集群的响应。所以最后一个例子将会响应 : 

```
{
    "persistent" : {},
    "transient" : {}
}
```

配置也可以使用简单的通配符来重置。例如动态的重启所有 **discovery.zen**，可以使用前缀 : 

```
curl -XPUT localhost:9200/_cluster/settings -d '{
    "transient" : {
        "discovery.zen.*" : null
    }
}'
```

集群范围内的配置可以是使用下列方式返回 : 

```
curl -XGET localhost:9200/_cluster/settings
```

## Precedence of settings（优先级设置）

瞬时的集群配置优先级大于永久的集群配置，优先级的配置可以在**elasticsearch.yml** 配置文件中配置。

由于这个原因，仅对于本地配置来说使用 `**elasticsearch.yml** 文件`，和用 **settings API** 来设置所有集群范围内的配置是更好的。