Cluster Update Settings

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

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 来设置所有集群范围内的配置是更好的。