[[index-modules]] = Index Modules [partintro] -- Index Modules are modules created per index and control all aspects related to an index. [float] [[index-modules-settings]] == Index Settings Index level settings can be set per-index. Settings may be: _static_:: They can only be set at index creation time or on a <>. _dynamic_:: They can be changed on a live index using the <> API. WARNING: Changing static or dynamic index settings on a closed index could result in incorrect settings that are impossible to rectify without deleting and recreating the index. [float] === Static index settings Below is a list of all _static_ index settings that are not associated with any specific index module: `index.number_of_shards`:: The number of primary shards that an index should have. Defaults to 5. This setting can only be set at index creation time. It cannot be changed on a closed index. Note: the number of shards are limited to `1024` per index. This limitation is a safety limit to prevent accidental creation of indices that can destabilize a cluster due to resource allocation. The limit can be modified by specifying `export ES_JAVA_OPTS="-Des.index.max_number_of_shards=128"` system property on every node that is part of the cluster. `index.shard.check_on_startup`:: + -- experimental[] Whether or not shards should be checked for corruption before opening. When corruption is detected, it will prevent the shard from being opened. Accepts: `false`:: (default) Don't check for corruption when opening a shard. `checksum`:: Check for physical corruption. `true`:: Check for both physical and logical corruption. This is much more expensive in terms of CPU and memory usage. `fix`:: Check for both physical and logical corruption. Segments that were reported as corrupted will be automatically removed. This option *may result in data loss*. Use with extreme caution! Checking shards may take a lot of time on large indices. -- [[index-codec]] `index.codec`:: The +default+ value compresses stored data with LZ4 compression, but this can be set to +best_compression+ which uses https://en.wikipedia.org/wiki/DEFLATE[DEFLATE] for a higher compression ratio, at the expense of slower stored fields performance. [[routing-partition-size]] `index.routing_partition_size`:: The number of shards a custom <> value can go to. Defaults to 1 and can only be set at index creation time. This value must be less than the `index.number_of_shards` unless the `index.number_of_shards` value is also 1. See <> for more details about how this setting is used. [float] [[dynamic-index-settings]] === Dynamic index settings Below is a list of all _dynamic_ index settings that are not associated with any specific index module: `index.number_of_replicas`:: The number of replicas each primary shard has. Defaults to 1. `index.auto_expand_replicas`:: Auto-expand the number of replicas based on the number of available nodes. Set to a dash delimited lower and upper bound (e.g. `0-5`) or use `all` for the upper bound (e.g. `0-all`). Defaults to `false` (i.e. disabled). `index.refresh_interval`:: How often to perform a refresh operation, which makes recent changes to the index visible to search. Defaults to `1s`. Can be set to `-1` to disable refresh. `index.max_result_window`:: The maximum value of `from + size` for searches to this index. Defaults to `10000`. Search requests take heap memory and time proportional to `from + size` and this limits that memory. See <> or <> for a more efficient alternative to raising this. `index.max_rescore_window`:: The maximum value of `window_size` for `rescore` requests in searches of this index. Defaults to `index.max_result_window` which defaults to `10000`. Search requests take heap memory and time proportional to `max(window_size, from + size)` and this limits that memory. `index.blocks.read_only`:: Set to `true` to make the index and index metadata read only, `false` to allow writes and metadata changes. `index.blocks.read_only_allow_delete`:: Identical to `index.blocks.read_only` but allows deleting the index to free up resources. `index.blocks.read`:: Set to `true` to disable read operations against the index. `index.blocks.write`:: Set to `true` to disable write operations against the index. `index.blocks.metadata`:: Set to `true` to disable index metadata reads and writes. `index.max_refresh_listeners`:: Maximum number of refresh listeners available on each shard of the index. These listeners are used to implement <>. [float] === Settings in other index modules Other index settings are available in index modules: <>:: Settings to define analyzers, tokenizers, token filters and character filters. <>:: Control over where, when, and how shards are allocated to nodes. <>:: Enable or disable dynamic mapping for an index. <>:: Control over how shards are merged by the background merge process. <>:: Configure custom similarity settings to customize how search results are scored. <>:: Control over how slow queries and fetch requests are logged. <>:: Configure the type of filesystem used to access shard data. <>:: Control over the transaction log and background flush operations. -- include::index-modules/analysis.asciidoc[] include::index-modules/allocation.asciidoc[] include::index-modules/mapper.asciidoc[] include::index-modules/merge.asciidoc[] include::index-modules/similarity.asciidoc[] include::index-modules/slowlog.asciidoc[] include::index-modules/store.asciidoc[] include::index-modules/translog.asciidoc[] include::index-modules/index-sorting.asciidoc[]