SolrJ和自动提交

时间:2014-03-10 06:52:59

标签: solr solrj solr4 solrcloud

我正在使用SolrJ API将文档添加到Solr 4.3核心,我注意到我在我使用的stock solrconfig中将自动提交设置为15秒。

 <autoCommit>
   <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
   <openSearcher>false</openSearcher>
 </autoCommit>

我的未定之处在于,由于自动提交设置为true,这意味着Solr实例无论如何都会每15秒自动提交一次,所以每次添加文档时我都不需要使用SolrJ API进行明确表示对索尔来说,我的理解是正确的吗?

        httpSolrServer.add(doc1);
        httpSolrServer.commit();// Is this still needed ?

提前致谢!

1 个答案:

答案 0 :(得分:5)

如果已定义自动提交,则不需要显式提交。

但是,在上面的定义中,对于(硬)提交,openSearcher设置为false。这意味着,Solr将提交但显示更改。

在示例配置中,它可以工作,因为还有autoSoftCommit提交,openSearcher设置为true(默认情况下为true)。这将使更改实际显示,但没有做昂贵的硬提交。

这两个部分可以很好地与您快速查看结果,然后定期将所有内容保存到磁盘。但请确保您有两个部分,或者您重新打开上面的搜索者。只做两个中的一个将导致结果永远不会显示,除非您还在其他地方进行显式提交。