| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | [[cluster-update-settings]]== Cluster Update SettingsUse this API to review and change cluster-wide settings. To review cluster settings:[source,js]--------------------------------------------------GET /_cluster/settings--------------------------------------------------// CONSOLEBy default, this API call only returns settings that have been explicitly defined, but can also <<cluster-get-settings,include the default settings>>.Updates to settings can be persistent, meaning they apply across restarts, or transient, where they don't survive a full cluster restart. Here is an example of a persistent update:[source,js]--------------------------------------------------PUT /_cluster/settings{    "persistent" : {        "indices.recovery.max_bytes_per_sec" : "50mb"    }}--------------------------------------------------// CONSOLEThis update is transient:[source,js]--------------------------------------------------PUT /_cluster/settings?flat_settings=true{    "transient" : {        "indices.recovery.max_bytes_per_sec" : "20mb"    }}--------------------------------------------------// CONSOLEThe response to an update returns the changed setting, as in this response to the transient example:[source,js]--------------------------------------------------{    ...    "persistent" : { },    "transient" : {        "indices.recovery.max_bytes_per_sec" : "20mb"    }}--------------------------------------------------// TESTRESPONSE[s/\.\.\./"acknowledged": true,/]You can reset persistent or transient settings by assigning a`null` value. If a transient setting is reset, the first one of these values that is defined is applied:* the persistent setting* the setting in the configuration file* the default value. This example resets a setting:[source,js]--------------------------------------------------PUT /_cluster/settings{    "transient" : {        "indices.recovery.max_bytes_per_sec" : null    }}--------------------------------------------------// CONSOLEThe response does not include settings that have been reset:[source,js]--------------------------------------------------{    ...    "persistent" : {},    "transient" : {}}--------------------------------------------------// TESTRESPONSE[s/\.\.\./"acknowledged": true,/]You can also reset settings using wildcards. For example, to resetall dynamic `indices.recovery` settings:[source,js]--------------------------------------------------PUT /_cluster/settings{    "transient" : {        "indices.recovery.*" : null    }}--------------------------------------------------// CONSOLE[float]=== Order of PrecedenceThe order of precedence for cluster settings is:1. transient cluster settings 2. persistent cluster settings3. settings in the `elasticsearch.yml` configuration file.It's best to set all cluster-wide settings with the `settings` API and use the`elasticsearch.yml` file only for local configurations. This way you can be sure thatthe setting is the same on all nodes. If, on the other hand, you define differentsettings on different nodes by accident using the configuration file, it is verydifficult to notice these discrepancies.You can find the list of settings that you can dynamically update in <<modules,Modules>>.
 |