我們在我們的應用程序中使用Lucene的近實時搜索功能進行全文搜索。由於提交是昂貴的,比如我們承諾在每添加10個文檔之後進行索引(我們預計每小時索引150到200個文檔)。現在,如果我想終止我的進程,我如何確保在進程被終止之前內存中的所有文檔都已提交到磁盤?有沒有在這裏推薦的方法?或者是我的文檔量太少了,我應該承諾每增加一項?如何用Lucene NRT Reader/Writer優雅地終止進程?
我應該跟蹤所有未提交的文檔嗎?如果進程在提交到磁盤之前被終止,那麼當進程啓動時,我應該將這些未提交的進程重新編入索引嗎?
Lucene NRT用於運行嵌入式Jetty的進程。發送關閉命令(調用某個servlet)到jetty並等待所有文檔被提交然後使用System.exit()終止是否是正確的方法?
你如何在lucene中做軟提交?在Google上搜索時找不到任何資源。 – naresh
對不起,這是一個Solr專用功能。我認爲它也可以在Lucene中使用,但它不是,這意味着如果你想使用它,你將不得不自己實現它。你可以在http://wiki.apache.org/solr/UpdateXmlMessages上閱讀一些關於它的文檔,以及https://issues.apache.org/jira/browse/SOLR-2193上的一些技術文檔(最新的補丁包含軟提交的工作實現)。 – jpountz