[[index-modules]] = Index Modules [partintro] -- Index Modules are modules created per index and control all aspects related to an index. Since those modules lifecycle are tied to an index, all the relevant modules settings can be provided when creating an index (and it is actually the recommended way to configure an index). [float] [[index-modules-settings]] == Index Settings There are specific index level settings that are not associated with any specific module. These include: [[index-compound-format]]`index.compound_format`:: Should the compound file format be used (boolean setting). The compound format was created to reduce the number of open file handles when using file based storage. However, by default it is set to `false` as the non-compound format gives better performance. It is important that OS is configured to give Elasticsearch ``enough'' file handles. See <>. + Alternatively, `compound_format` can be set to a number between `0` and `1`, where `0` means `false`, `1` means `true` and a number inbetween represents a percentage: if the merged segment is less than this percentage of the total index, then it is written in compound format, otherwise it is written in non-compound format. added[0.90.2] [[index-compound-on-flush]]`index.compound_on_flush`:: Should a new segment (create by indexing, not by merging) be written in compound format or non-compound format? Defaults to `true`. This is a dynamic setting. `index.term_index_interval`:: Set the interval between indexed terms. Large values cause less memory to be used by a reader / searcher, but slow random-access to terms. Small values cause more memory to be used by a reader / searcher, and speed random-access to terms. Defaults to `128`. `index.term_index_divisor`:: Subsamples which indexed terms are loaded into RAM. This has the same effect as `index.term_index_interval` except that setting must be done at indexing time while this setting can be set per reader / searcher. When set to N, then one in every N*termIndexInterval terms in the index is loaded into memory. By setting this to a value > 1 you can reduce memory usage, at the expense of higher latency when loading a TermInfo. The default value is 1. Set this to -1 to skip loading the terms index entirely. `index.refresh_interval`:: A time setting controlling how often the refresh operation will be executed. Defaults to `1s`. Can be set to `-1` in order to disable it. -- include::index-modules/analysis.asciidoc[] include::index-modules/allocation.asciidoc[] include::index-modules/slowlog.asciidoc[] include::index-modules/merge.asciidoc[] include::index-modules/store.asciidoc[] include::index-modules/mapper.asciidoc[] include::index-modules/translog.asciidoc[] include::index-modules/cache.asciidoc[] include::index-modules/fielddata.asciidoc[] include::index-modules/codec.asciidoc[] include::index-modules/similarity.asciidoc[]