我正在实施Solr的自由文本搜索项目,其中每天需要大量添加和删除可用于搜索的记录.
由于规模我需要确保索引的大小是合适的.
在我的Solr测试安装中,我索引了一组10个文档.然后我在其中一个文档中进行了更改,并希望在索引中替换具有相同ID的文档.这可以正常工作,并在搜索时按预期运行.
我正在使用此代码更新文档:
getSolrServer().deleteById(document.getIndexId());
getSolrServer().add(document.getSolrInputDocument());
getSolrServer().commit();
Run Code Online (Sandbox Code Playgroud)
我注意到的是,当我查看Solr服务器的统计页面时,数字并不是我所期望的.
在初始索引之后,numDocs和maxDocs都如预期的那样等于10.但是,当我更新文档时,numDocs仍然等于10(预期)但maxDocs等于11(意外).
阅读文档时,我看到了
maxDoc可能更大,因为maxDoc计数包括尚未从索引中删除的逻辑删除文档.
所以问题是,如何从索引中删除逻辑删除的文档?
如果这些文档仍然存在于索引中,那么当运行大量文档时,我是否会面临性能损失的风险?
谢谢 :)
您必须优化索引.
请注意,优化是广泛的,您可能不应该每天做更多.
以下是有关优化的更多信息:
http://www.lucidimagination.com/search/document/CDRG_ch06_6.3.1.3
http://wiki.apache.org/solr/SolrPerformanceFactors#Optimization_Considerations
| 归档时间: |
|
| 查看次数: |
5228 次 |
| 最近记录: |