2024-03-13
原文作者:吴声子夜歌 原文地址: https://blog.csdn.net/cold___play/article/details/133916011

Index Settings

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

  • static(静态的):只能在索引创建时或者在状态为 closed index(闭合的索引)上设置。
  • dynamic(动态的):可以使用 update-index-settingsAPI 在状态为 live index(激活的索引)上更改它们。

1、Static index settings(静态索引设置)

  • index.number_of_shards:索引应该具有的主碎片数。默认值为1。此设置只能在创建索引时设置。不能在闭合索引上更改它。注意:每个索引的碎片数量限制为1024个。此限制是一个安全限制,用于防止由于资源分配而意外创建可能会破坏集群稳定的索引。可以通过在作为集群一部分的每个节点上指定export ES_JAVA_OPTS=“-Des.index.max_number_of_shards=128"系统属性来修改该限制。

  • index.shard.check_on_startup:是否应在索引打开前检查分片是否损坏,当检查到分片损坏将禁止分片被打开。

    • false:默认值,打开分片时不检查分片是否损坏。
    • checksum:检查屋里损坏。
    • true:检查物理和逻辑损坏,这将消耗大量的内存和 CPU。
  • index.odec:默认值使用LZ4压缩来压缩存储的数据,但可以将其设置为best_compression,它使用DEFLATE来获得更高的压缩比,而牺牲了较慢的存储字段性能。如果要更新压缩类型,则将在合并线段后应用新的压缩类型。可以使用强制合并来强制合并段。

  • index.routing_partition_size:自定义路由值可以访问的碎片数。默认为1,并且只能在创建索引时设置。该值必须小于index.number_of_shards,除非index.number_of _shards值也是1。

  • index.load_fixed_bitset_filters_eagerly:指示是否为嵌套查询预加载缓存筛选器。可能的值有true(默认值)和false。

  • index.hidden:指示默认情况下是否应隐藏索引。使用通配符表达式时,默认情况下不会返回隐藏索引。通过使用expand_wildcards参数来控制每个请求的这种行为。可能的值有true和false(默认值)。

2、Dynamic index settings(动态索引设置)

  • index.number_of_replicas:每个主分片具有的副本数。默认值为1。

  • index.auto_expand_replicas:根据群集中数据节点的数量自动扩展复制副本的数量。设置为以破折号分隔的下限和上限(例如0-5),或使用all作为上限(例如0-all)。默认为false(即禁用)。请注意,副本的自动扩展数量只考虑了分配筛选规则,而忽略了任何其他分配规则,如碎片分配意识和每个节点的总碎片,如果适用的规则阻止分配所有副本,这可能会导致集群运行状况变为黄色。

  • index.search.idle.after:shard在被视为搜索空闲之前无法接收搜索或获取请求的时间。(默认值为30s)

  • index.refresh_interval:执行刷新操作的频率,这将使最近对索引的更改对搜索可见。默认为1秒。可设置为-1以禁用刷新。如果未显式设置此设置,则在收到搜索请求之前,至少在index.search.idle.After秒内未看到搜索流量的分片将不会收到后台刷新。命中等待刷新的空闲碎片的搜索将等待下一次后台刷新(在1秒内)。此行为旨在在未执行任何搜索的默认情况下自动优化大容量索引。为了选择退出此行为,应将1的显式值设置为刷新间隔。

  • index.max_result_window:搜索到此索引时的最大值From+Size。默认为10000。搜索请求占用的堆内存和时间与From+Size成正比,这限制了该内存。

  • index.max_inner_result_window:此索引的内部命中定义和顶级命中聚合的最大值From+Size。默认为100。内部命中和顶级命中聚合占用的堆内存和时间与From+Size成比例,这限制了该内存。

  • index.max_rescore_window:此索引搜索中的rescore请求的最大Window_Size值。默认为index.max_Result_Window,默认为10000。搜索请求占用堆内存和时间与max(Window_Size,from+Size)成正比,这会限制该内存。

  • index.max_docvalue_fields_search:查询中允许的最大docvalue_field数。默认为100。文档值字段的成本很高,因为它们可能会导致按字段、按文档进行查找。

  • index.max_script_fields:查询中允许的最大SCRIPT_FIELD数。默认为32

  • index.max_ngram_diff:NGramTokenizer和NGramTokenFilter的min_gram和max_gram之间允许的最大差值。默认为1。

  • index.max_shingle_diff:Shingle令牌筛选器的max_shingle_size和min_shingle_size之间允许的最大差值。默认为3。

  • index.blocks.read_only:设置为True可使索引和索引元数据为只读,设置为False可允许写入和更改元数据。

  • index.blocks.read_only_allow_delete:类似于index.locks.read_only,但也允许删除索引以使更多资源可用。基于磁盘的碎片分配器可以自动添加和删除该块。

  • index.blocks.read:设置为TRUE可禁用对索引的读取操作。

  • index.blocks.write:设置为TRUE可禁用对索引的数据写入操作。与READ_ONLY不同,此设置不影响元数据。例如,您可以使用WRITE块关闭索引,但不能使用READ_ONLY块关闭索引。

  • index.blocks.metadata:设置为TRUE可禁用索引元数据读取和写入。

  • index.max_refresh_listeners:索引的每个碎片上可用的刷新监听程序的最大数量。这些侦听器用于实现REFRESH=WAIT_FOR。

  • index.analyze.max_token_count:可以使用分析API生成的最大令牌数。默认为10000。

  • index.highlight.max_analyzed_offset:将为突出显示请求分析的最大字符数。仅当在没有偏移量或术语向量的索引文本上请求突出显示时,此设置才适用。默认为1000000。

  • index.max_terms_count:术语查询中可以使用的最大术语数。默认为65536。

  • index.max_regex_length:可在Regexp查询中使用的正则表达式的最大长度。默认为1000。

  • index.routing.allocation.enable:控制此索引的碎片分配。它可以设置为:

    • all:(默认)-允许为所有碎片分配碎片。
    • primaries:仅允许为主碎片分配碎片。
    • new_primaries:仅允许为新创建的主碎片分配碎片。
    • none:不允许分配碎片。
  • index.routing.rebalance.enable:为此索引启用碎片重新平衡。它可以设置为:

    • all:(默认)-允许对所有碎片进行碎片重新平衡。
    • primaries:仅允许对主碎片重新平衡碎片。
    • replicas:仅允许对副本碎片进行碎片重新平衡。
    • none:不允许碎片重新平衡。
  • index.gc_deletes:已删除文档的版本号可用于进一步版本化操作的时间长度。默认为60。

  • index.default_pipeline:此索引的默认接收节点管道。如果设置了默认管道并且该管道不存在,则索引请求将失败。可以使用管道参数覆盖缺省值。特殊管道名称_NONE表示不应运行接收管道。

  • index.final_pipeline:此索引的最终接收节点管道。如果设置了最终管道并且该管道不存在,则索引请求将失败。最终管道始终在请求管道(如果指定)和默认管道(如果存在)之后运行。特殊管道名称_NONE表示不会运行任何接收管道。

3、其他可用设置

  • Analysis:定义 analyzers(分析器)、tokenizers(分词器)、tokenfilters(词元过滤器)和 characterfilters(字符过滤器)。
  • Index shard allocation:控制索引分配给节点的位置、时间、以及分片的方式。
  • Mapping:启用或禁用索引的动态映射。
  • Merging:控制后台合并线程如何合并分片。
  • Similarities:配置自定义相似性设置以自定义搜索结果的计分方式。
  • Slowlog:控制记录搜索和索引请求的响应时间。
  • Store:配置用于存储分片数据的文件系统类型。
  • Translog:控制事务日志和后台刷新操作。
  • History retention:设置以控制索引中操作历史的保留。
阅读全文