我跑了很多,这导致成千上万删除文件和磁盘使用量的显著上升(GB 100年代)的数百SOLR文档更新。
我能够做的优化,以删除所有文件删除
卷曲的http://本地主机:8983 / solr的/ core_name /更新优化=真?
但是,这需要时间来运行,并且需要大量的内存和磁盘空间。
有没有更好的办法从SOLR索引中删除删除的文件或更新文件,而无需创建一个删除的一个?
谢谢你的帮助!
我跑了很多,这导致成千上万删除文件和磁盘使用量的显著上升(GB 100年代)的数百SOLR文档更新。
我能够做的优化,以删除所有文件删除
卷曲的http://本地主机:8983 / solr的/ core_name /更新优化=真?
但是,这需要时间来运行,并且需要大量的内存和磁盘空间。
有没有更好的办法从SOLR索引中删除删除的文件或更新文件,而无需创建一个删除的一个?
谢谢你的帮助!
Lucene的使用追加唯一的策略,这意味着,当添加一个旧文档的新版本,旧的文件被标记为删除,而一个新的插入索引。 这种方式可以让Lucene来避免重写整个索引文件为文档添加,在旧文件物理依然存在于索引的成本 - 直到合并或者优化情况。
当你发出expungeDeletes,你告诉Solr的进行合并,如果删除的文件的数量超过一定的阈值,实际上,这意味着你在迫使优化幕后为Solr的认为必要的。
你怎么能解决这个取决于你使用的情况下,更具体的信息 - 在一般情况下,只需把它留给了合并因素等标准设置应该是足够好的。 如果你没有看到任何合并,你可能已经从发生禁用自动合并(具体取决于您的索引大小,看到百十万删除的文件似乎广泛采取2分30秒的索引处理)。 在这种情况下,要确保正确启用,并调整它再次值。 还有变化与7.5引入到TieredMergePolicy是 ,允许更详细的合并过程控制(也可能是更好的默认值)。
每次如果你重新索引你的全部数据集,索引到一个单独的集合/核心,然后切换的别名或以上时,删除旧的数据集前完成更名的核心也是一种选择。