This is an attempt at a complete listing of elasticsearch config variables since they’re located all over the elastic.co website.
The list is not complete, and will start to “rot” as soon as it’s published, but… If you know of some variables that aren’t listed, please let me know.
Note that static settings must be set in the config file on every machine in the cluster.
Bootstrap
| Name | Type | Notes | Doc |
|---|---|---|---|
| bootstrap.mlockall | Static | Link |
Cloud
| Name | Type | Notes | Doc |
|---|---|---|---|
| cloud.aws.access_key | Unknown | Link | |
| cloud.aws.ec2 | Unknown | Link | |
| cloud.aws.protocol | Unknown | Link | |
| cloud.aws.proxy | Unknown | Link | |
| cloud.aws.region | Unknown | Link | |
| cloud.aws.s3 | Unknown | Link | |
| cloud.aws.secret_key | Unknown | Link | |
| cloud.aws.signer | Unknown | Link |
Cluster
| Name | Type | Notes | Doc |
|---|---|---|---|
| cluster.blocks.read_only | Dynamic | Link | |
| cluster.info.update.interval | Dynamic | Link | |
| cluster.name | Unknown | Link | |
| cluster.routing.allocation.allow_rebalance | Dynamic | Link | |
| cluster.routing.allocation.awareness.attributes | Dynamic | Link | |
| cluster.routing.allocation.awareness.force.zone.values | Dynamic | Link | |
| cluster.routing.allocation.balance.shard | Unknown | Link | |
| cluster.routing.allocation.balance.index | Unknown | Link | |
| cluster.routing.allocation.balance.threshold | Unknown | Link | |
| cluster.routing.allocation.cluster_concurrent_rebalance | Dynamic | Link | |
| cluster.routing.allocation.disk.include_relocations | Dynamic | Link | |
| cluster.routing.allocation.disk.threshold_enabled | Dynamic | Link | |
| cluster.routing.allocation.disk.watermark.low | Dynamic | Link | |
| cluster.routing.allocation.disk.watermark.high | Dynamic | Link | |
| cluster.routing.allocation.enable | Dynamic | Link | |
| cluster.routing.allocation.exclude | Dynamic | Link | |
| cluster.routing.allocation.include | Dynamic | Link | |
| cluster.routing.allocation.node_concurrent_recoveries | Dynamic | Link | |
| cluster.routing.allocation.node_initial_primaries_recoveries | Dynamic | Link | |
| cluster.routing.allocation.require | Dynamic | Link | |
| cluster.routing.allocation.same_shard.host | Dynamic | Link | |
| cluster.routing.allocation.total_shards_per_node | Dynamic | Link | |
| cluster.routing.rebalance.enable | Dynamic | Link |
Discovery
ec2 discovery can also have: groups, host_type, availability_zones, any_group, ping_timeout, and node_cache_time. Use this inside discovery.ec2, e.g. discover.ec2.groups.
| Name | Type | Notes | Doc |
|---|---|---|---|
| discovery.type | Dynamic | Link | |
| discovery.zen.minimum_master_nodes | Dynamic | Link | |
| discovery.zen.ping.multicast.enabled | Unknown | Removed in ES 2.2 | Link |
| discovery.zen.ping.unicast.hosts | Unknown | Link |
Gateway
| Name | Type | Notes | Doc |
|---|---|---|---|
| gateway.expected_nodes | Unknw | Link | |
| gateway.expected_master_nodes | Static | Link | |
| gateway.expected_data_nodes | Static | Link | |
| gateway.recover_after_time | Static | Link | |
| gateway.recover_after_nodes | Static | Link | |
| gateway.recover_after_master_nodes | Static | Link | |
| gateway.recover_after_data_nodes | Static | Link |
HTTP
| Name | Type | Notes | Doc |
|---|---|---|---|
| http.port | Static | Link | |
| http.publish_port | Static | Link | |
| http.bind_host | Static | Link | |
| http.publish_host | Static | Link | |
| http.host | Static | Link | |
| http.max_content_length | Static | Link | |
| http.max_initial_line_length | Static | Link | |
| http.max_header_size | Static | Link | |
| http.compression | Static | Link | |
| http.compression_level | Static | Link | |
| http.cors.enabled | Static | Link | |
| http.cors.allow-origin | Static | Link | |
| http.cors.max-age | Static | Link | |
| http.cors.allow-methods | Static | Link | |
| http.cors.allow-headers | Static | Link | |
| http.cors.allow-credentials | Static | Link | |
| http.detailed_errors.enabled | Static | Link | |
| http.pipelining | Static | Link | |
| http.pipelining.max_events | Static | Link |
Index
| Name | Type | Notes | Doc |
|---|---|---|---|
| index.analysis.analyzer | Static | Link | |
| index.analysis.filter | Static | Link | |
| index.analysis.tokenizer | Static | Link | |
| index.auto_expand_replicas | Dynamic | Link | |
| index.blocks.metadata | Dynamic | Link | |
| index.blocks.read | Dynamic | Link | |
| index.blocks.read_only | Dynamic | Link | |
| index.blocks.write | Dynamic | Link | |
| index.codec | Static | Link | |
| index.gateway.local.sync | Unknown | Renamed to index.translog.sync_interval in ES 2.0 | Link |
| index.max_result_window | Dynamic | Link | |
| index.merge.policy.calibrate_size_by_deletes | Unknown | Removed in ES 2.0 | Link |
| index.merge.policy.expunge_deletes_allowed | Unknown | Removed in ES 2.0 | Link |
| index.merge.policy.max_merge_docs | Unknown | Removed in ES 2.0 | Link |
| index.merge.policy.max_merge_size | Unknown | Removed in ES 2.0 | Link |
| index.merge.policy.merge_factor | Unknown | Removed in ES 2.0 | Link |
| index.merge.policy.min_merge_docs | Unknown | Removed in ES 2.0 | Link |
| index.merge.policy.min_merge_size | Unknown | Removed in ES 2.0 | Link |
| index.merge.policy.type | Unknown | Removed in ES 2.0 | Link |
| index.merge.scheduler.max_thread_count | Dynamic | Link | |
| index.number_of_replicas | Dynamic | Link | |
| index.number_of_shards | Static | Link | |
| index.recovery.initial_shards | Dynamic | Link | |
| index.refresh_interval | Dynamic | Requires units in ES 2.0 | Link |
| index.routing.allocation.exclude | Dynamic | Link | |
| index.routing.allocation.include | Dynamic | Link | |
| index.routing.allocation.require | Dynamic | Link | |
| index.routing.allocation.total_shards_per_node | Dynamic | Link | |
| index.search.slowlog.threshold | Dynamic | Link | |
| index.shard.check_on_startup | Static | Link | |
| index.similarity.default.type | Static | Link | |
| index.store.throttle.type | Unknown | Removed in Es 2.0 | Link |
| index.store.throttle.max_bytes_per_sec | Unknown | Removed in Es 2.0 | Link |
| index.store.type | Static | memory and ram types removed in ES 2.0 | Link |
| index.ttl.disable_purge | Dynamic | Link | |
| index.translog.durability | Dynamic | Link | |
| index.translog.fs.type | Dynamic | Link | |
| index.translog.flush_threshold_ops | Dynamic | Link | |
| index.translog.flush_threshold_period | Dynamic | Link | |
| index.translog.flush_threshold_size | Dynamic | Link | |
| index.translog.interval | Dynamic | Link | |
| index.translog.sync_interval | Static | Link | |
| index.unassigned.node_left.delayed_timeout | Dynamic | Link |
Indices
indices.store.throttle.max_bytes_per_sec
| Name | Type | Notes | Doc |
|---|---|---|---|
| indices.analysis.hunspell.dictionary.location | Unknown | Removed in ES 2.0 | Link |
| indices.recovery.concurrent_streams | Dynamic | Link | |
| indices.recovery.concurrent_small_file_streams | Dynamic | Link | |
| indices.store.throttle.type | Unknown | Removed in ES 2.0 | Link |
| indices.store.throttle.max_bytes_per_sec | Unknown | Removed in ES 2.0 | Link |
Logger
| Name | Type | Notes | Doc |
|---|---|---|---|
| logger.indexes.recovery | Dynamic | Link | |
| logger.transport.tracer | Dynamic | Link |
Network
| Name | Type | Notes | Doc |
|---|---|---|---|
| network.bind_host | Unknown | Link | |
| network.host | Dynamic | See special values | Link |
| network.publish_host | Unknown | Link | |
| network.tcp.no_delay | Unknown | Link | |
| network.tcp.keep_alive | Unknown | Link | |
| network.tcp.reuse_address | Unknown | Link | |
| network.tcp.send_buffer_size | Unknown | Link | |
| network.tcp.receive_buffer_size | Unknown | Link |
Node
| Name | Type | Notes | Doc |
|---|---|---|---|
| node.data | Unknown | Link | |
| node.enable_custom_paths | Unknown | Removed in ES 2.0 | Link |
| node.master | Unknown | Link | |
| node.max_local_storage_nodes | Static | Link | |
| node.name | Unknown | Link |
Path
| Name | Type | Notes | Doc |
|---|---|---|---|
| path.conf | Static | Link | |
| path.data | Static | Link | |
| path.home | Static | Link | |
| path.logs | Static | Link | |
| path.plugins | Static | Link | |
| path.repo | Static | Link | |
| path.scripts | Static | Link | |
| path.shared_data | Unknown | Link |
Plugin
| Name | Type | Notes | Doc |
|---|---|---|---|
| plugin.mandatory | Static | Link |
Resource
| Name | Type | Notes | Doc |
|---|---|---|---|
| resource.reload.enabled | Unknown | ||
| resource.reload.interval | Unknown | Link | |
| resource.reload.interval.low | Unknown | ||
| resource.reload.interval.medium | Unknown | ||
| resource.reload.interval.high | Unknown |
Repositories
| Name | Type | Notes | Doc |
|---|---|---|---|
| repositories.url.allowed_urls | Unknown | Link |
Script
| Name | Type | Notes | Doc |
|---|---|---|---|
| script.auto_reload_enabled | Static | Link | |
| script.default_lang | Static | Link | |
| script.disable_dynamic | Unknown | Removed in ES 2.0 | |
| script.file | Static | Link | |
| script.index | Static | Link | |
| script.inline | Static | Link | |
| script.update | Static | Link | |
| script.mapping | Static | Link | |
| script.engine.expression | Static | Link | |
| script.engine.groovy | Static | Link | |
| script.engine.javascript | Static | Link | |
| script.engine.mustache | Static | Link | |
| script.engine.python | Static | Link |
Thread Pool
There are several thread pools. Elastic lists the “important” ones as including: generic, index, search, suggest, get, bulk, percolate, snapshot, warmer, refresh, listener. Some settings are documented, and are listed below.
You can also control the number of processors for a thread pool, which is briefly documented here.
| Name | Type | Notes | Doc |
|---|---|---|---|
| threadpool.generic.keep_alive | Dynamic | Link | |
| threadpool.index.queue_size | Dynamic | Link | |
| threadpool.index.size | Dynamic | Link |
Transport
Transport allows you to bing to multiple ports on different interfaces. See the transport profiles doc for more info.
| Name | Type | Notes | Doc |
|---|---|---|---|
| transport.bind_host | Unknown | Link | |
| transport.host | Unknown | Link | |
| transport.ping_schedule | Unknown | Link | |
| transport.publish_host | Unknown | Link | |
| transport.publish_port | Unknown | Link | |
| transport.tcp.compress | Unknown | Link | |
| transport.tcp.connect_time | Unknown | Link | |
| transport.tcp.port | Unknown | Link | |
| transport.tracer.exclude | Dynamic | Link | |
| transport.tracer.include | Dynamic | Link |
Tribe
There are a lot of options for tribes that vary based on the tribe name. Some info is presented here.
| Name | Type | Notes | Doc |
|---|---|---|---|
| tribe.blocks.metadata | Unknown | Link | |
| tribe.blocks.metadata.indices | Unknown | Link | |
| tribe.blocks.write | Unknown | Link | |
| tribe.blocks.write.indices | Unknown | Link | |
| tribe.t1.cluster.name | Unknown | Link |
| Name | Type | Notes | Doc |
|---|---|---|---|
| watcher.enabled | Unknown | Renamed in ES 2.0 | Link |
| watcher.interval | Unknown | Renamed in ES 2.0 | Link |
| watcher.interval.low | Unknown | Renamed in ES 2.0 | Link |
| watcher.interval.medium | Unknown | Renamed in ES 2.0 | Link |
| watcher.interval.high | Unknown | Renamed in ES 2.0 | Link |

