我正在使用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 ?
提前致谢!
答案 0 :(得分:5)
如果已定义自动提交,则不需要显式提交。
但是,在上面的定义中,对于(硬)提交,openSearcher设置为false。这意味着,Solr将提交但不显示更改。
在示例配置中,它可以工作,因为还有autoSoftCommit提交,openSearcher设置为true(默认情况下为true)。这将使更改实际显示,但没有做昂贵的硬提交。
这两个部分可以很好地与您快速查看结果,然后定期将所有内容保存到磁盘。但请确保您有两个部分,或者您重新打开上面的搜索者。只做两个中的一个将导致结果永远不会显示,除非您还在其他地方进行显式提交。