Elasticsearch Configuration Options
Setting | Category | Description |
---|---|---|
http.port | http | A bind port range. Defaults to 9200-9300. |
http.publish_port | http | 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_host | http | The host address to bind the HTTP service to. Defaults to http.host (if set) or network.bind_host. |
http.publish_host | http | The host address to publish for HTTP clients to connect to. Defaults to http.host (if set) or network.publish_host. |
http.host | http | Used to set the http.bind_host and the http.publish_host Defaults to http.host or network.host. |
http.max_content_length | http | The max content of an HTTP request. Defaults to 100mb. |
http.max_initial_line_length | http | The max length of an HTTP URL. Defaults to 4kb |
http.max_header_size | http | The max size of allowed headers. Defaults to 8kB |
http.compression | http | Support for compression when possible (with Accept-Encoding). Defaults to true. |
http.compression_level | http | 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.enabled | http | 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-origin | http | Which 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-age | http | 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-methods | http | Which methods to allow. Defaults to OPTIONS, HEAD, GET, POST, PUT, DELETE. |
http.cors.allow-headers | http | Which headers to allow. Defaults to X-Requested-With, Content-Type, Content-Length. |
http.cors.allow-credentials | http | 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.enabled | http | 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.pipelining | http | Enable or disable HTTP pipelining, defaults to true. |
http.pipelining.max_events | http | The maximum number of events to be queued up in memory before a HTTP connection is closed, defaults to 10000. |
http.max_warning_header_count | http | The maximum number of warning headers in client HTTP responses, defaults to unbounded. |
http.max_warning_header_size | http | The maximum total size of warning headers in client HTTP responses, defaults to unbounded. |
transport.tcp.port | transport | A bind port range. Defaults to 9300-9400. |
transport.publish_port | transport | The 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_host | transport | The host address to bind the transport service to. Defaults to transport.host (if set) or network.bind_host. |
transport.publish_host | transport | The host address to publish for nodes in the cluster to connect to. Defaults to transport.host (if set) or network.publish_host. |
transport.host | transport | Used to set the transport.bind_host and the transport.publish_host Defaults to transport.host or network.host. |
transport.tcp.connect_timeout | transport | The socket connect timeout setting (in time setting format). Defaults to 30s. |
transport.tcp.compress | transport | Set to true to enable compression (DEFLATE) between all nodes. Defaults to false. |
transport.ping_schedule | transport | 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 } }’