ElasticSearch索引配置settings的配置项可分为以下几种类型:

1、静态配置项

        所谓静态配置项就是在创建index时指定,创建后不能再修改。

1.1、分片相关的配置

配置项功能备选值默认值其他说明
index.number_of_shards当前index拥有的主分片数5最大为1024
index.shard.check_on_startup在启动时是否检查分片false:打开时不检查损坏;
true:检查物理损坏;
checksum:物理损坏和逻辑损坏都检查
false
index.routing_partition_size设置的自定义路由可以转到几个分片上大于1小于

1.2、压缩算法设置

配置项功能备选值默认值其他说明
index.codec数据压缩算法设置default:默认全长LZ4压缩算法;
best_compression:拥有更高压缩比,但存储性能会降低
default

1.3、排序设置

配置项功能备选值其他说明
index.sort.field用于排序的字段,多个使用数组

排序的字段只能是boolean,numeric,date,

keyword类型

index.sort.order排序方式asc:正序;
desc:倒序
index.sort.mode用于多个值的字段的排序模式max : 选最小值;
min:选最大值
index.sort.missing当排序字段不存在时指定哪种排序_first : 按第一个字段来排序;
_last:按最后一个字段来排序

1.4、数据存储设置

配置项功能备选值
index.store.type存储的方式fs:文件系统;
simplefs:随机文件存储;
niofs:非阻塞文件系统存储;
mmapfs:mmap内存映射存储
index.store.preload将索引文件预加载到内存中* :所有数据;
nvd:存储各个影响分数的因子的数据;
dvd:文档的值;
tim:文件字典;
doc:发布清单;
dim:点数据

2、动态配置项

所谓动态配置项是在创建index后,还可以通过API动态来修改。

2.1、分片相关配置

配置项功能备选值默认值其他说明
index.number_of_replicas每个主分片拥有的副本数1
index.auto_expand_replicas是否根据节点数量,自动扩展副本数量false也可以设置0-5的数字
index.routing.allocation.enable控制此索引的路由分片分配all:针对所有分片;
primaries:所有主分片;
new_primaries:仅允许分配新建的主分片;
none:不允许分片
all
index.routing.reblance.enable开启分片重新负载均衡的开关all:针对所有分片;
primaries:所有主分片;
replicas:所有副本分片;
none:不允许分片
all

2.2、查询相关的设置

配置项功能备选值默认值其他说明
index.max_result_window一次最多获取多少条记录10000
index.max_inner_result_window内层的hits的条数和最高的命中的数据条数100
index.max_rescore_window重新打分请求的最大数量10000
index.max_docvalue_fields_search查询中最大允许的docvalue-field的数量100
index.max_script_fields在查询中script_fields的最大数量10000
index.highlight.max_analyzed_offset高亮显示最大的字符数
index.max_terms_count查询语句中terms子名的最大数量65536
index.max_regex_length在正则查询表达式中使用的正则表达式最大长度1000

2.3、索引读写开关相关的配置

配置项功能
index.blocks.read_only是否只允许索引和元数据的读取操作
index.blocks_read_only_allow_delete是否只允许索引的读操作和删除操作
index.blocks.read是否禁止索引数据的读取
index.blocks.write是否禁止索引数据的写操作
index.blocks.metadata是否禁止元数据的读写操作

2.4、刷新索引的设置

配置项功能备选值默认值其他说明
index.refresh.interval执行刷新操作的频率,索引更新多久才对搜索可见-1:表示禁止刷新;
1s:表示1秒
1s
index.max_refresh_listeners每个分片上最大刷新监听器的数量

2.5、translog设置

配置项功能备选值默认值其他说明
index.translog.sync_interval将数据同步到磁盘的频率5s
index.translog.durablility将数据刷新到磁盘的时机request:每次请求都同步刷新;
async:后台按照刷新频率定时刷新
index.translog.flush_threshold_size刷新日志的最大阀值512M
index.translog.retention.size中继日志文件保存数据的总容量512M
index.translog.retention.age中继日志文件保存的最长时间12h

2.6、慢日志设置

(1)慢搜索日志设置

配置项功能默认值
index.search.slowlog.threshold.query.warnwarn级别的慢搜索日志的阀值(即多少秒的搜索才算warn级别的慢搜索)10s
index.search.slowlog.threshold.query.infoinfo级别的慢搜索日志的阀值(即多少秒的搜索才算info级别的慢搜索)10s
index.search.slowlog.threshold.query.debugdebug级别的慢搜索日志的阀值(即多少秒的搜索才算debug级别的慢搜索)10s
index.search.slowlog.threshold.query.tracetrace级别的慢搜索日志的阀值(即多少秒的搜索才算trace级别的慢搜索)10s
index.search.slowlog.threshold.fetch.warnwarn级别的慢获取数据日志的阀值(即多少秒的获取数据才算warn级别的慢获取)10s
index.search.slowlog.threshold.fetch.infoinfo级别的慢获取日志的阀值(即多少秒的获取数据才算info级别的慢获取)10s
index.search.slowlog.threshold.fetch.debugwarn级别的慢获取日志的阀值(即多少秒的获取数据才算debug级别的慢获取)500ms
index.search.slowlog.threshold.fetch.tracewarn级别的慢获取日志的阀值(即多少秒的搜索才算trace级别的慢获取)10s
index.search.slowlog.level慢搜索日志的级别

(2)慢索引日志设置

配置项功能默认值
index.indexing.slowlog.threshold.index.warnwarn级别的慢索引日志的阀值(即多少秒的索引才算warn级别的慢索引)10s
index.indexing.slowlog.threshold.index.infoinfo级别的慢索引日志的阀值(即多少秒的索引才算info级别的慢索引)10s
index.indexing.slowlog.threshold.index.debugdebug级别的慢索引日志的阀值(即多少秒的索引才算debug级别的慢索引)10s
index.indexing.slowlog.threshold.index.tracetrace级别的慢索引日志的阀值(即多少秒的索引才算trace级别的慢索引)10s
index.indexing.slowlog.level慢索引日志的级别
index.indexing.slowlog.source记录source的大小(false/0:记录整个慢日志;1000:记录source中的前1000个字符)

2.7、mapping相关设置

配置项功能备选值默认值其他说明
index.mapping.total_fields_limit一次索引中字段数的最大数量1000
index.mapping.depth.limit索引中字段的深度限制(即字段可以嵌套多少层)20
index.mapping.nested_fields_limit一个索引中内嵌字段的最大数量50

3、示例

PUT/my_index
{
	"settings": {
		"index": {
			"number_of_shards": "1",
			"number_of_replicas": "1",
			"refresh_interval": "60s",
			"analysis": {
				"filter": {
					"tsconvert": {
						"type": "stconvert",
						"convert_type": "t2s",
						"delimiter": ","
					},
					"synonym": {
						"type": "synonym",
						"synonyms_path": "analysis/synonyms.txt"
					}
				},
				"analyzer": {
					"ik_max_word_synonym": {
						"filter": ["synonym",
						"tsconvert",
						"standard",
						"lowercase",
						"stop"],
						"tokenizer": "ik_max_word"
					},
					"ik_smart_synonym": {
						"filter": ["synonym",
						"standard",
						"lowercase",
						"stop"],
						"tokenizer": "ik_smart"
					}
				},
				"mapping": {
					"coerce": "false",
					"ignore_malformed": "false"
				},
				"indexing": {
					"slowlog": {
						"threshold": {
							"index": {
								"warn": "2s",
								"info": "1s"
							}
						}
					}
				},
				"provided_name": "hospital_202101070533",
				"query": {
					"default_field": "timestamp",
					"parse": {
						"allow_unmapped_fields": "false"
					}
				},
				"requests": {
					"cache": {
						"enable": "true"
					}
				},
				"search": {
					"slowlog": {
						"threshold": {
							"fetch": {
								"warn": "1s",
								"info": "200ms"
							},
							"query": {
								"warn": "1s",
								"info": "500ms"
							}
						}
					}
				}
			}
		}
	}
}

 固定属性

  • index.creation_date:顾名思义索引的创建时间戳。
  • index.uuid:索引的 uuid 信息。
  • index.version.created:索引的版本号。

索引静态配置

  • index.number_of_shards:索引的主分片数,默认值是 5。这个配置在索引创建后不能修改;在 es 层面,可以通过 es.index.max_number_of_shards 属性设置索引最大的分片数,默认为 1024
  • index.codec:数据存储的压缩算法,默认值为 LZ4,可选择值还有 best_compression,它比 LZ4 可以获得更好的压缩比(即占据较小的磁盘空间,但存储性能比 LZ4 低)。
  • index.routing_partition_size:路由分区数,如果设置了该参数,其路由算法为:( hash(_routing) + hash(_id) % index.routing_parttion_size ) % number_of_shards。如果该值不设置,则路由算法为 hash(_routing) % number_of_shardings,_routing 默认值为 _id。

静态配置里,有重要的部分是配置分析器(config analyzers)。

  • index.analysis:分析器最外层的配置项,内部主要分为 :
    • char_filter:定义新的字符过滤器件。
    • tokenizer:定义新的分词器。
    • filter:定义新的 token filter,如同义词 filter。
    • analyzer:配置新的分析器,一般是char_filter、tokenizer 和一些 token filter 的组合。

索引动态配置

  • index.number_of_replicas:索引主分片的副本数,默认值是 1,该值必须大于等于 0,这个配置可以随时修改。
  • index.refresh_interval:执行新索引数据的刷新操作频率,该操作使对索引的最新更改对搜索可见,默认为 1s。也可以设置为 -1 以禁用刷新
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐