我有一个两节点弹性搜索集群,它配置为有 5 个分片和 2 个副本。在我用~2M 记录索引一个 db 表后,在相应的缓存下生成了 124 个段。这个数字太大了,加了更多的索引,恐怕很容易达到 nofiles 的硬性限制。
有没有办法减少每个索引的段数?谢谢
我有一个两节点弹性搜索集群,它配置为有 5 个分片和 2 个副本。在我用~2M 记录索引一个 db 表后,在相应的缓存下生成了 124 个段。这个数字太大了,加了更多的索引,恐怕很容易达到 nofiles 的硬性限制。
有没有办法减少每个索引的段数?谢谢
您可以控制弹性搜索中的合并策略。可以使用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'
您可以使用以下命令减少最大段数
$ curl -XPOST 'http://localhost:9200/_forcemerge?max_num_segments=5'
在 Windows 的情况下,您需要删除引号。