Elasticsearch Configuration Options

http.porthttpA bind port range. Defaults to 9200-9300.
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.
The host address to bind the HTTP service to. Defaults to http.host (if set) or network.bind_host.
The host address to publish for HTTP clients to connect to. Defaults to http.host (if set) or network.publish_host.
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.
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.
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.
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.
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.
Which headers to allow. Defaults to X-Requested-With, Content-Type, Content-Length.
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
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.
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.
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.
The host address to bind the transport service to. Defaults to transport.host (if set) or network.bind_host.
The host address to publish for nodes in the cluster to connect to. Defaults to transport.host (if set) or network.publish_host.
Used to set the transport.bind_host and the transport.publish_host Defaults to transport.host or network.host.
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.
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 } }’