Elasticsearch,solr并发提交

Elasticsearch, solr concurrent commit

大约三年前,我们开发了使用 solr 的应用程序,我记得版本 #4。我记得使用 solr 的工作分为两个步骤 - 添加文档和提交。新文档仅在提交后才在索引中可用。此外,每天进行一次优化。

问题在于,对于 solr,我们无法使用并发提交,并且数据库更新和 solr 索引更新之间存在严重的时间延迟。但是,对于我们开发的应用程序,这种延迟不是问题。

现在我们需要开发另一个应用程序,这里我们需要几乎实时的索引。我们的情况——N 个用户可以同时更新一些数据。在他们更新数据库中的数据的那一刻,必须同时更新索引。我们可以用 elasticsearch 做到这一点吗?

较新版本的 Solr 可以处理这种情况:

http://wiki.apache.org/solr/NearRealtimeSearch

基本上,您将提交留给服务器(应用程序不提交),并且您将服务器配置为非常频繁(例如每秒)进行软提交,这非常便宜并且可以使文档可用内存中的索引,以及不频繁(例如每隔几分钟)的硬提交,这很昂贵,但是将新文档写入永久存储。