我在web應用中使用Lucene。 Lucene用於在添加文章時創建索引。 由於只有一個的IndexWriter實例可以爲索引目錄中存在,我使用了單的IndexWriter爲應用程序。在使用Lucene web應用程序,當收單例的IndexWriter?
- 什麼時候應該關閉IndexWriter以將所有文檔提交到索引目錄?
- 如果Web服務器(Tomcat)的下降,應該怎麼恢復未提交的文件? Lucene提供了什麼方法從崩潰中恢復?
我在web應用中使用Lucene。 Lucene用於在添加文章時創建索引。 由於只有一個的IndexWriter實例可以爲索引目錄中存在,我使用了單的IndexWriter爲應用程序。在使用Lucene web應用程序,當收單例的IndexWriter?
時,我應該關閉的IndexWriter提交所有文件索引目錄?
如果您非常擔心數據丟失,請儘可能頻繁地提交(甚至可以在每個文檔之後執行)。如果搜索新鮮度不是至關重要的,您仍然可以保留舊閱讀器並稍後重新打開。
如果Web服務器(Tomcat)的下降,我應該如何恢復未提交的文件? Lucene提供了任何方法從崩潰中恢復?
Lucene是原子 - 只要你退出writer.commit()
或writer.close()
,改變被保存到磁盤,以後可以讀取。我認爲這應該夠了。
不要忘記:Lucene是僅爲搜尋庫。您有責任確保應用程序不會崩潰。即使這樣做,您也有責任實施恢復策略。關於原子性,Lucene已經做了相當不錯的工作。
你可能想看看IndexWriter.commit而關閉並重新打開的IndexWriter。