Elasticsearch Configuration Options

SettingCategoryDescription
http.porthttpA bind port range. Defaults to 9200-9300.
http.publish_porthttp
The port that HTTP clients should use when communicating with this node. Useful when a cluster node is behind a proxy or firewall and the http.port is not directly addressable from the outside. Defaults to the actual port assigned via http.port.
http.bind_hosthttp
The host address to bind the HTTP service to. Defaults to http.host (if set) or network.bind_host.
http.publish_hosthttp
The host address to publish for HTTP clients to connect to. Defaults to http.host (if set) or network.publish_host.
http.hosthttp
Used to set the http.bind_host and the http.publish_host Defaults to http.host or network.host.
http.max_content_lengthhttpThe max content of an HTTP request. Defaults to 100mb.
http.max_initial_line_lengthhttp
The max length of an HTTP URL. Defaults to 4kb
http.max_header_sizehttpThe max size of allowed headers. Defaults to 8kB
http.compressionhttpSupport for compression when possible (with Accept-Encoding). Defaults to true.
http.compression_levelhttp
Defines the compression level to use for HTTP responses. Valid values are in the range of 1 (minimum compression) and 9 (maximum compression). Defaults to 3.
http.cors.enabledhttp
Enable or disable cross-origin resource sharing, i.e. whether a browser on another origin can execute requests against Elasticsearch. Set to true to enable Elasticsearch to process pre-flight CORS requests. Elasticsearch will respond to those requests with the Access-Control-Allow-Origin header if the Origin sent in the request is permitted by the http.cors.allow-origin list. Set to false (the default) to make Elasticsearch ignore the Origin request header, effectively disabling CORS requests because Elasticsearch will never respond with the Access-Control-Allow-Origin response header. Note that if the client does not send a pre-flight request with an Origin header or it does not check the response headers from the server to validate the Access-Control-Allow-Origin response header, then cross-origin security is compromised. If CORS is not enabled on Elasticsearch, the only way for the client to know is to send a pre-flight request and realize the required response headers are missing.
http.cors.allow-originhttpWhich origins to allow. Defaults to no origins allowed. If you prepend and append a / to the value, this will be treated as a regular expression, allowing you to support HTTP and HTTPs. for example using /https?:\/\/localhost(:[0-9]+)?/ would return the request header appropriately in both cases. is a valid value but is considered a *security risk as your Elasticsearch instance is open to cross origin requests from anywhere.
http.cors.max-agehttp
Browsers send a "preflight" OPTIONS-request to determine CORS settings. max-age defines how long the result should be cached for. Defaults to 1728000 (20 days)
http.cors.allow-methodshttpWhich methods to allow. Defaults to OPTIONS, HEAD, GET, POST, PUT, DELETE.
http.cors.allow-headershttp
Which headers to allow. Defaults to X-Requested-With, Content-Type, Content-Length.
http.cors.allow-credentialshttp
Whether the Access-Control-Allow-Credentials header should be returned. Note: This header is only returned, when the setting is set to true. Defaults to false
http.detailed_errors.enabledhttp
Enables or disables the output of detailed error messages and stack traces in response output. Note: When set to false and the error_trace request parameter is specified, an error will be returned; when error_trace is not specified, a simple message will be returned. Defaults to true
http.pipelininghttpEnable or disable HTTP pipelining, defaults to true.
http.pipelining.max_eventshttpThe maximum number of events to be queued up in memory before a HTTP connection is closed, defaults to 10000.
http.max_warning_header_counthttp
The maximum number of warning headers in client HTTP responses, defaults to unbounded.
http.max_warning_header_sizehttpThe maximum total size of warning headers in client HTTP responses, defaults to unbounded.
transport.tcp.porttransport
A bind port range. Defaults to 9300-9400.
transport.publish_porttransportThe port that other nodes in the cluster should use when communicating with this node. Useful when a cluster node is behind a proxy or firewall and the transport.tcp.port is not directly addressable from the outside. Defaults to the actual port assigned via transport.tcp.port.
transport.bind_hosttransport
The host address to bind the transport service to. Defaults to transport.host (if set) or network.bind_host.
transport.publish_hosttransport
The host address to publish for nodes in the cluster to connect to. Defaults to transport.host (if set) or network.publish_host.
transport.hosttransport
Used to set the transport.bind_host and the transport.publish_host Defaults to transport.host or network.host.
transport.tcp.connect_timeouttransport
The socket connect timeout setting (in time setting format). Defaults to 30s.
transport.tcp.compresstransportSet to true to enable compression (DEFLATE) between all nodes. Defaults to false.
transport.ping_scheduletransport
Schedule a regular ping message to ensure that connections are kept alive. Defaults to 5s in the transport client and -1 (disabled) elsewhere.

Change the index flush frequency:
curl -H “Content-Type: application/json” -XPUT localhost:9200/_settings -d ‘{“index”:{“refresh_interval”:”2s”}}’

Check shard checksums on startup:
curl -H “Content-Type: application/json” -XPUT localhost:9200/*/_settings -d ‘{“index.shard.check_on_startup”: “checksum”}’

Global Cluster Limit (circuit breaker) for searches:
curl -H “Content-Type: application/json” -XPUT localhost:9200/_cluster/settings -d ‘{“transient”:{“search.default_search_timeout”: “1s”}}’

Make index read only but allow deletes:
curl -H “Content-Type: application/json” -XPUT localhost:9200/index_name/_settings -d ‘{“index.blocks.read_only_allow_delete”: true}’

Perform a simple search:
curl -H “Content-Type: application/json” -XGET localhost:9200/index_name/_search -d ‘{“query”:{“term”:{“body”:”reddit”}},”size”:1}’

Increase max result set size:
curl -H “Content-Type: application/json” -XPUT “http://localhost:9200/my_index/_settings” -d ‘{ “index” : { “max_result_window” : 500000 } }’