index的setting参数

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: index的setting参数

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、分片相关配置

配置项 功能 备选值 默认值 其他说明

1686801805210.png

2.2、查询相关的设置

1686801824847.png

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


1686801845869.png

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)慢搜索日志设置

1686801882617.png

(2)慢索引日志设置

1686801897537.png

2.7、mapping相关设置

1686801916635.png


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 以禁用刷新


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
ESLint—— Failed to load config "standard" to extend from
ESLint—— Failed to load config "standard" to extend from
94 0
|
8月前
|
索引
filebeat 设置索引的 max_result_window
在 Filebeat 中设置索引的 max_result_window 需要修改 Elasticsearch 的索引模板。max_result_window 参数定义了在 Elasticsearch 中执行搜索时,最大返回文档的数量。默认情况下,该值为 10000。 要修改该值,可以按照以下步骤操作: 打开 Filebeat 的配置文件。 找到输出部分,其中定义了 Elasticsearch 输出。 在 Elasticsearch 输出配置中,找到索引模板相关的配置。 确保你已经定义了自定义的索引模板(如果没有,请创建一个)。 在索引模板中,设置 max_result_window 参数为
122 1
|
缓存 关系型数据库 MySQL
【异常解决】缓存报错:Null key returned for cache operation (maybe you are using named params on classes withou
【异常解决】缓存报错:Null key returned for cache operation (maybe you are using named params on classes withou
777 0
|
8月前
|
JavaScript 前端开发
ESLint—— Failed to load config “standard“ to extend from
ESLint—— Failed to load config “standard“ to extend from
204 0
|
Java
Consider injecting ***setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching
Consider injecting ***setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching
112 0
|
缓存
【已解决】npm start 报错 Could not freeze ...: cannot read properties of undefined (reading ‘hash‘)
npm start 报错 Could not freeze ...: cannot read properties of undefined (reading ‘hash‘)
585 0
|
SQL 索引
ORA-01502: index ‘index_name' or partition of such index is in unusable state
错误现象:   今天发布脚本时,一个表插入数据时报如下错误   ORA-01502: index ‘index_name' or partition of such index is in unusable state   ORA-06512: at line 168 错误原因:   这个错误一般是因为索引状态为UNUSABLE引起的。
996 0
为什么 window.location.search 为空?
1,什么是window.location?示例 URL:http://b.a.com:88/index.php?name=kang&when=2011#first 属性 含义 值 protocol: 协议 "http:" hostname: 服务器的名字 "b.
1813 0

热门文章

最新文章