在使用Lucene NRT时,在Commit期间会发生什么

时间:2011-08-28 13:39:34

标签: lucene.net lucene-nrt

我们正在使用Lucene.NET 2.9.2,并希望转向Lucene的Near Realtime功能。

我们从IndexReader获取IndexWriter(因此使用NRT)。我的理解是,当以这种方式使用它时,IndexReader还将包含那些已添加但尚未提交的文档的搜索结果(我们正在检查是否IndexReader iscurrent,并使用{ {1}}如果不是)。

假设我已经添加了50个文档,并决定将它们reopen添加到索引中,让我们说文档很大,并且提交需要5秒钟。

如果有新搜索,这5秒内会发生什么?在提交完成之前,内部Commit是否会保留这50个文档?或者是否会出现50个文件丢失5秒的情况?

1 个答案:

答案 0 :(得分:1)

您仍然可以搜索这些记录。您的读者仍然指向未提交的索引版本,就好像您从未调用过commit一样。一旦提交完成,isCurrent将反映您需要一个新的读者。