SolrJ和自动提交

use*_*449 5 solr solrj solrcloud solr4

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

 <autoCommit>
   <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
   <openSearcher>false</openSearcher>
 </autoCommit>
Run Code Online (Sandbox Code Playgroud)

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

        httpSolrServer.add(doc1);
        httpSolrServer.commit();// Is this still needed ?
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Ale*_*tch 5

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

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

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

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