2011-08-28 57 views
1

我们正在使用Lucene.NET 2.9.2,并希望转移到Lucene的Near Realtime功能。使用Lucene NRT时提交时会发生什么

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

比方说,我已经添加了50个文档,并决定将它们设置为Commit,并且假设文档很大,并且提交需要5秒钟。

如果有新的搜索进来,在这5秒内会发生什么?内部RAMDirectory将保持这50个文件,直到提交完成?或者会有这样的情况,那50个文件会丢失5秒?

回答

1

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