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.warn | warn级别的慢搜索日志的阀值(即多少秒的搜索才算warn级别的慢搜索) | 10s |
index.search.slowlog.threshold.query.info | info级别的慢搜索日志的阀值(即多少秒的搜索才算info级别的慢搜索) | 10s |
index.search.slowlog.threshold.query.debug | debug级别的慢搜索日志的阀值(即多少秒的搜索才算debug级别的慢搜索) | 10s |
index.search.slowlog.threshold.query.trace | trace级别的慢搜索日志的阀值(即多少秒的搜索才算trace级别的慢搜索) | 10s |
index.search.slowlog.threshold.fetch.warn | warn级别的慢获取数据日志的阀值(即多少秒的获取数据才算warn级别的慢获取) | 10s |
index.search.slowlog.threshold.fetch.info | info级别的慢获取日志的阀值(即多少秒的获取数据才算info级别的慢获取) | 10s |
index.search.slowlog.threshold.fetch.debug | warn级别的慢获取日志的阀值(即多少秒的获取数据才算debug级别的慢获取) | 500ms |
index.search.slowlog.threshold.fetch.trace | warn级别的慢获取日志的阀值(即多少秒的搜索才算trace级别的慢获取) | 10s |
index.search.slowlog.level | 慢搜索日志的级别 | |
(2)慢索引日志设置
配置项 | 功能 | 默认值 |
---|
index.indexing.slowlog.threshold.index.warn | warn级别的慢索引日志的阀值(即多少秒的索引才算warn级别的慢索引) | 10s |
index.indexing.slowlog.threshold.index.info | info级别的慢索引日志的阀值(即多少秒的索引才算info级别的慢索引) | 10s |
index.indexing.slowlog.threshold.index.debug | debug级别的慢索引日志的阀值(即多少秒的索引才算debug级别的慢索引) | 10s |
index.indexing.slowlog.threshold.index.trace | trace级别的慢索引日志的阀值(即多少秒的索引才算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
以禁用刷新
本文转自 https://blog.csdn.net/weixin_40482816/article/details/126899385?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-126899385-blog-114530757.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-126899385-blog-114530757.pc_relevant_recovery_v2&utm_relevant_index=5,如有侵权,请联系删除。