Index Modules(索引模块)

Index Modules(索引模块)是根据索引创建的 modules (模块),并控制与 index(索引)相关的所有设置。

Index Settings(索引设置)

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

static(静态的)

只能在索引创建时或者在状态为 closed index(闭合的索引)上设置。

dynamic(动态的)

可以使用 update-index-settings 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 方式以牺牲字段存储性能为代价来获得更高的压缩比例。

index.routing_partition_size

自定义路由值可以转发的目的分片数。默认为 1,只能在索引创建时设置。此值必须小于 index.number_of_shards,除非 index.number_of_shards 值也为 1。有关如何使用此设置的更多详细信息,请参阅 Routing to an 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 以禁用刷新。

index.max_result_window

用于索引搜索的 from+size 的最大值。默认为 10000。搜索请求占用堆内存和时间与 from+size 的大小成正比,有此限制是为了防止内存溢出。请参阅 Scroll Search After,以提高效率。

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

Settings in other index modules(其他索引模块的设置)

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

Analysis(分析)

定义 analyzers(分析器)、tokenizers(分词器)、token filters(词元过滤器)和 character filters(字符过滤器)。

Index shard allocation(索引分片分配)

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

Mapping(映射)

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

Merging(合并)

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

Similarities(相似性)

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

Slowlog(慢日志)

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

Store(存储))

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

Translog(事务日志)

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