我正在为一个项目实施 Solr 的自由文本搜索,在该项目中,每天需要大规模添加和删除可供搜索的记录。
由于规模的原因,我需要确保索引的大小是合适的。
在我的 Solr 测试安装中,我索引了一组 10 个文档。然后我对其中一个文档进行了更改,并希望在索引中替换具有相同 ID 的文档。当我搜索时,这可以正常工作并按预期运行。
我正在使用此代码来更新文档:
getSolrServer().deleteById(document.getIndexId());
getSolrServer().add(document.getSolrInputDocument());
getSolrServer().commit();
但我注意到的是,当我查看 Solr 服务器的统计信息页面时,这些数字并不是我所期望的。
在初始索引之后,numDocs 和 maxDocs 都如预期的那样等于 10。然而,当我更新文档时,numDocs 仍然等于 10(预期),但 maxDocs 等于 11(意外)。
阅读文档时,我看到
maxDoc 可能更大,因为 maxDoc 计数包括尚未从索引中删除的逻辑删除文档。
所以问题是,如何从索引中删除逻辑删除的文档?
如果这些文档仍然存在于索引中,当运行大量文档时,我是否会面临性能损失的风险?
谢谢 :)