我正在设计一个web应用程序,其中多个连接使用两阶段提交对数据库和Solr5进行更改。我的问题是,有没有一种方法可以隔离每个连接所做的更改,以便在将更改成功提交到数据库和solr之前,连接所做的更改对其他连接不可见?
在无数次搜索之后,我读到了这个有趣的article,它表明这是不可能的。有没有人做过类似的事情?
提前感谢!
发布于 2016-02-03 13:58:38
这是不可能的。Solr的commit是服务器端,用于公开到目前为止所有累积的文档。
您可以使用的另一种方法是对单独的集合进行索引,然后将它们作为单个多集合别名一起使用。当然,这意味着理论上没有文档可以同时存在于两个集合中(否则会得到重复的文档)。
发布于 2016-02-03 14:03:35
我也面临着同样的问题。Solr为提供了2种提交的方式。
Hard Commit -它在给定的时间段后将文档提交到磁盘。
Soft Commit -它实时提交您的文档。使用它是很好的。如果你想实时提交你的文档。
您可以配置solrconfig.xml,如下所示
Hard Commit -它将在15秒的时间间隔内将您的文档正确提交到磁盘。
<autoCommit>
<maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
<openSearcher>true</openSearcher>
</autoCommit>Soft Commit -无论何时发生任何提交,它都会在实时中提交您的文档。
<autoSoftCommit>
<maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
</autoSoftCommit>https://stackoverflow.com/questions/35159444
复制相似问题