我们正在使用Lucene.NET 2.9.2,并希望转向Lucene的Near Realtime功能。
我们从IndexReader
获取IndexWriter
(因此使用NRT
)。我的理解是,当以这种方式使用它时,IndexReader还将包含那些已添加但尚未提交的文档的搜索结果(我们正在检查是否IndexReader
iscurrent
,并使用{ {1}}如果不是)。
假设我已经添加了50个文档,并决定将它们reopen
添加到索引中,让我们说文档很大,并且提交需要5秒钟。
如果有新搜索,这5秒内会发生什么?在提交完成之前,内部Commit
是否会保留这50个文档?或者是否会出现50个文件丢失5秒的情况?
答案 0 :(得分:1)
您仍然可以搜索这些记录。您的读者仍然指向未提交的索引版本,就好像您从未调用过commit一样。一旦提交完成,isCurrent将反映您需要一个新的读者。