多个连接更新solr文档

时间:2016-02-02 17:00:36

标签: solr lucene

我正在设计一个Web应用程序,其中多个连接使用两阶段提交对数据库和solr 5进行更改。我的问题是,有没有办法隔离每个连接所做的更改,以便在将更改成功提交到数据库和solr之前,连接所做的更改将对其余连接不可见?

经过无数次搜索,我读到了这篇有趣的article,它表明这是不可能的。任何人都做过类似的事情吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

这是不可能的。 Solr的提交是服务器端,以公开所有累积的文档。

您可以使用的另一种方法是索引到单独的集合中,然后将它们作为单个多集合别名一起使用。当然,这意味着理论上不会在两个集合中同时存在任何文档(或者您将获得重复)。

答案 1 :(得分:0)

我遇到了同样的问题。 Solr提供 2种方式提交。

硬提交 - 在给定的时间段后,它会将您的文档提交到磁盘中。

软提交 - 实时提交您的文档。使用它很好。如果您想实时提交文档。

您可以配置 solrconfig.xml ,例如

硬提交 - 它会在15秒的时间内将文档正确提交到磁盘。

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

软提交 - 只要发生任何提交,它就会以实时提交您的文档。

<autoSoftCommit>
    <maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
</autoSoftCommit>