elasticsearch - 在进行强制合并时,Elasticsearch 7.9 的 max_num_segments 使用什么值?

标签 elasticsearch elasticsearch-performance

我正在将 ES 1.4.2 升级到 ES 7.9。为此,我必须通过重新索引 API 来进行远程索引,以将所有数据从旧集群获取到新集群。但是在重新索引后,ES 7.9 的搜索查询性能下降了很多。所以我打算做 forcemerge 以提高查询性能。如果我决定强制合并,我应该为 max_num_segments 使用哪个值?没有提供指导方针。
旧集群有 2 个主分片,一个有 18 个 16 段,第二个有 18 个段。远程索引后的新集群有 2 个主分片,一个有 27 个段,第二个有 30 个段。
很高兴指导我使用 max_num_segments 的值。谢谢

最佳答案

尽管您没有提供有关集群、索引大小、文档、副本、堆大小、搜索查询等的任何信息,但很难说搜索性能不佳的根本原因是什么。但一般来说,使用较少的片段可以提高搜索性能,合并过程自动发生,在极少数情况下需要人工干预 但您仍然可以使用强制合并 API,它不应该超过 5GB 阈值。
请引用我的this SO answer有关合并过程和 API 的更多信息,请尝试使用 max_num_segments=1并且 ES 将尝试将其减少到最小段数(5 GB 阈值可能会阻止某些段不符合合并条件)。
另外,请使用segment API查看分割的大小并将其与其他所需信息一起添加。

关于elasticsearch - 在进行强制合并时,Elasticsearch 7.9 的 max_num_segments 使用什么值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64322570/

相关文章:

elasticsearch - 确定文档在Elasticsearch中的匹配方式

elasticsearch - Elasticsearch在inner_hits上聚合

elasticsearch - Elasticsearch 日期范围查询

elasticsearch - 如何通过大量潜在值对 Elasticsearch 查询进行子集化或限制?

elasticsearch - 数据未加载到Kibana中

java - Elasticsearch Java API 错误 : java. lang.NoSuchMethodError : com. carlotsearch.hppc.ObjectHashSet.equals(Ljava/lang/Object;Ljava/lang/Object;)Z

java - 在Elasticsearch中按多个条件搜索

elasticsearch - 使用stored_fields在Elastic Search中检索字段的子集

elasticsearch - Elastic Search中带有评论的博客文章的数据模型

elasticsearch - 通过用户崩溃来计算百分位数