2011-08-28 23 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就會反映出你需要一個新的閱讀器。

相關問題