# Index Modules（索引模块）

原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.3/index-modules.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/index-modules.html)

译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=9405337](http://www.apache.wiki/pages/viewpage.action?pageId=9405337)

贡献者 : [苏涛](/display/~sutao)，[ApacheCN](/display/~apachecn)，[Apache中文网](/display/~apachechina)

**Index** **Modules**（索引模块）是根据索引创建的 **modules** （模块），并控制与 **index**（索引）相关的所有设置。

### Index Settings（索引设置）

索引级别的设置可以针对每个索引单独设置。这些设置可以是 : 

_static_（静态的）

只能在索引创建时或者在状态为 [closed index](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/indices-open-close.html "Open / Close Index API")（闭合的索引）上设置。

_dynamic_（动态的）

可以使用 [update-index-settings](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/indices-update-settings.html) **API** 在状态为 **live index**（激活的索引）上更改它们。

警告

在闭合索引上更改 **static**（静态的）或 **dynamic**（动态的）索引设置可能导致不正确的配置，无法在不删除和重新创建索引的情况下进行纠正。

### Static index settings（静态索引设置）

以下是与任何特定索引模块无关的，所有 **static**（静态）索引设置的列表 : 

**index.number_of_shards**

索引应具有的主分片数。默认为 **5**。此设置只能在索引创建时设置。在闭合的索引上无法更改。注意 : 分片数量限制为每个索引 **1024 **个。这是一种安全限制，防止意外创建索引后资源分配导致集群不稳定。可以通过在集群的每个节点上设置环境变量 **ES_JAVA_OPTS ="- Des.index.max_number_of_shards = 128" **来修改限制。

**index.shard.check_on_startup**

[实验功能]，可能在后期版本中移除]是否应在索引打开前检查分片是否损坏，当检查到分片损坏将禁止分片被打开。

**false**

默认值，打开分片时不检查分片是否损坏。

**checksum**

检查物理损坏。

**true**

检查物理和逻辑损坏，这将消耗大量的内存和 **CPU**。

**fix**

检查物理和逻辑损坏。有损坏的分片将被集群自动删除，这将导致数据丢失。该选项**也许会造成数据丢失**。使用时请考虑清楚。

检查分片在数据量大的索引会消耗更多的时间。

**index.codec**

默认使用LZ4压缩方式存储数据，也可以设置为 **best_compression**，它使用 [DEFLATE ](https://en.wikipedia.org/wiki/DEFLATE)方式以牺牲字段存储性能为代价来获得更高的压缩比例。

**index.routing_partition_size**

自定义路由值可以转发的目的分片数。默认为 **1**，只能在索引创建时设置。此值必须小于 **index.number_of_shards**，除非 **index.number_of_shards **值也为 **1**。有关如何使用此设置的更多详细信息，请参阅 [Routing to an index partition](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/mapping-routing-field.html#routing-index-partition)。

### Dynamic index settings（动态索引设置）

以下是与任何特定索引模块无关的，所有 **dynamic**（动态）索引设置的列表 : 

**index.number_of_replicas**

每个主分片的副本数。默认为 **1**。

**index.auto_expand_replicas**

基于可用节点的数量自动分配副本数量。可以设置为以中划线分隔的最小值和最大值（例如 **0-5**）或设置最大值为 **all**（例如0-all）。默认为 **false**（即禁用此功能）。

**index.refresh_interval**

执行刷新操作的频率，这使得索引的最近更改可以被搜索。默认为 **1 **秒。可以设置为 **-1 **以禁用刷新。

**index.max_result_window**

用于索引搜索的 **from+size **的最大值。默认为 **10000**。搜索请求占用堆内存和时间与 **from+size **的大小成正比，有此限制是为了防止内存溢出。请参阅 **[Scroll ](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/search-request-scroll.html)**或 **[Search After](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/search-request-search-after.html)**，以提高效率。

**index.max_rescore_window**

      在搜索此索引中 **rescore **的 **window_size **的最大值。默认为 "**index.max_result_window**"设置的值即 **10000**。搜索请求占用堆内存和时间与 **from+size **的大小成正比，有此限制是为了防止内存溢出。

**index.blocks.read_only**

      设置为 **true **使索引和索引元数据为只读，**false **为允许写入和元数据更改。

**index.blocks.read**

      设置为 **true **可禁用对索引的读取操作。

**index.blocks.write**

      设置为 **true **可禁用对索引的写入操作。

**index.blocks.metadata**

      设置为 **true **可禁用索引元数据的读取和写入。

**index.max_refresh_listeners**

      索引的每个分片上可用的最大刷新侦听器数。这些侦听器用于实现 **[refresh=wait_for](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/docs-refresh.html)**。

### Settings in other index modules（其他索引模块的设置）

在索引模块中其他可用的索引设置 : 

[Analysis](http://www.apache.wiki/pages/viewpage.action?pageId=10028534)（分析）

定义 **analyzers**（分析器）、**tokenizers**（分词器）、**token** **filters**（词元过滤器）和 **character** **filters**（字符过滤器）。

[Index shard allocation](/pages/viewpage.action?pageId=9405588)（索引分片分配）

控制索引分配给节点的位置、时间、以及分片的方式。

[Mapping](http://www.apache.wiki/pages/viewpage.action?pageId=10028537)（映射）

启用或禁用索引的动态映射。

[Merging](http://www.apache.wiki/pages/viewpage.action?pageId=10028539)（合并）

控制后台合并线程如何合并分片。

[Similarities](http://www.apache.wiki/pages/viewpage.action?pageId=10028541)（相似性）

配置自定义相似性设置以自定义搜索结果的计分方式。

[Slowlog](http://www.apache.wiki/pages/viewpage.action?pageId=10028543)（慢日志）

控制记录搜索和索引请求的响应时间。

[Store](http://www.apache.wiki/display/Elasticsearch/Store)（存储)）

配置用于存储分片数据的文件系统类型。

[Translog](http://www.apache.wiki/pages/viewpage.action?pageId=10028549)（事务日志）

控制事务日志和后台刷新操作。