我有一个双节点elasticsearch集群,配置为有5个分片和2个副本。在为具有~2M记录的db表编制索引之后,在相应的缓存下生成了124个段。这个数字太大了,我担心它会很容易达到添加更多索引的nofiles的硬限制。
有没有办法减少每个索引的细分数量?感谢
答案 0 :(得分:6)
您可以控制elasticsearch中的merge policy。可以使用Update Index Settings API动态更新合并设置。例如,您可以将index.merge.policy.segments_per_tier
减少到低于10的某个值,这将减少每个层上的细分数量,从而减少细分总数。
您还可以使用Optimize API手动强制合并。例如:
$ curl -XPOST 'http://localhost:9200/your-index/_optimize?max_num_segments=1'
答案 1 :(得分:1)
您可以使用以下命令减少最大段数
$ curl -XPOST 'http://localhost:9200/_forcemerge?max_num_segments=5'
如果是windows,则需要删除引号。