我很困惑和。以下是我的理解SOLR autoCommit vs autoSoftCommit
autoSoftCommit - 一个autoSoftCommit后,如果该SOLR服务器出现故障,autoSoftCommit文档都将丢失。
autoCommit - 对磁盘执行硬提交并确保所有autoSoftCommit提交都写入磁盘并提交任何其他文档。
我的下面的配置似乎只与使用autoSoftCommit。自动提交自己似乎没有做任何提交。有什么我失踪?
<updateHandler class="solr.DirectUpdateHandler2">
<updateLog>
<str name="dir">${solr.ulog.dir:}</str>
</updateLog>
<autoSoftCommit>
<maxDocs>1000</maxDocs>
<maxTime>1200000</maxTime>
</autoSoftCommit>
<autoCommit>
<maxDocs>10000</maxDocs>
<maxTime>120000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
</updateHandler>
为什么autoCommit在自己的工作?
这是有道理的。我猜如果文档已经被softCommitted,openSearcher = true并不是真的需要。我每2个小时索引500,000条记录是否将softCommit设置为3分钟,并且自动提交到1小时将成为生产的良好配置? – hajime
您是否连续编制或批量编制索引?请记住,软提交比硬提交(一些额外的内存中结构)有更多的内存要求。无论哪种方式,软性与硬性的区别都是针对需要接近实时查看文档(秒)的人。如果你在几分钟内操作,你可能只需坚持每隔几分钟就提交一次,而不会注意到其中的差异。测试它,如果您还有其他问题,请在Solr用户邮件列表中询问更多高级帮助。 –
是的,我正在分批索引。我每秒钟添加约500-700个文件。这些文件的尺寸非常小。我并不担心立即编制索引。但我需要它至少每30分钟进行一次索引。所以我只用 openSearcher = true? –
hajime