程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了优化solr索引时如何限制合并段的数量?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决优化solr索引时如何限制合并段的数量??

开发过程中遇到优化solr索引时如何限制合并段的数量?的问题如何解决?下面主要结合日常开发的经验,给出你关于优化solr索引时如何限制合并段的数量?的解决方法建议,希望对你解决优化solr索引时如何限制合并段的数量?有所启发或帮助;

我有一个很大的 Solr 搜索索引,有很多段。我想合并它们以占用更少的磁盘空间并通过扫描较小的索引来加快搜索速度,在段合并期间从搜索中删除已删除的文档。

optimize 的默认行为是合并所有段,直到只剩下一个段。我想避免这种情况,并在剩余指定数量的段的情况下提前停止。否则合并可能会因内存不足异常而失败,同时尝试合并两个比可用 RAM 大的块。

解决方法

先来看看磁盘上的索引段

tomcat/solr/corename/data/index$ ls -htlr --sort=size | grep .nvd

将输出按大小排序的索引段,因此您可以计算停止合并时应该留下多少段。合并总是从最小的块开始。

curl -X POST http://localhost:8080/solr/corename/update -H "Content-Type: text/xml" --data-binary '<update> <optimize maxSegments="80"/> </update>'

根据 @H_677_5@maxMergeAtOnce 中的 @H_677_5@mergeFactor 中配置的 solrConfig.xml,将触发对索引的优化,将多个段合并为一个更大的结果。

@H_677_5@maxSegments 参数指定当合并应该停止时应该留下多少段。因此,您可以在合并索引的最大块之前停止。

确保发送包含更新 XML <update> <optimize maxSegments="80"/> </update> 的 POST 正文,其中包含 optimize 命令和 @H_677_5@maxSegments 参数集。在 GET 请求中将参数作为查询参数发送将不起作用。

我还注意到我需要重新启动 Solr 来清理磁盘上旧的合并索引文件。在重新启动之前和成功合并之后,索引文件仍然存在于磁盘上。

大佬总结

以上是大佬教程为你收集整理的优化solr索引时如何限制合并段的数量?全部内容,希望文章能够帮你解决优化solr索引时如何限制合并段的数量?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: