IndexWriter.Close()
和IndexWriter.Commit()
當我只有單個實例indexWriter
時有什麼不同?Lucene IndexWriter.Close()vs indexWriter.Commit()
注意:我要製作索引的數據非常大,我無法關閉IndexWriter運行時。
注意:我想在數據在同一時間索引的文檔中搜索。
IndexWriter.Close()
和IndexWriter.Commit()
當我只有單個實例indexWriter
時有什麼不同?Lucene IndexWriter.Close()vs indexWriter.Commit()
注意:我要製作索引的數據非常大,我無法關閉IndexWriter運行時。
注意:我想在數據在同一時間索引的文檔中搜索。
Commit()提交掛起的,緩存的索引變化(然後可以通過IndexReader()找到)。 IndexWriter然後可以繼續用於更多的更改。 Close()也執行Commit(),但是另外關閉了IndexWriter。請注意,IndexWriter實現了IDisposable(),我推薦使用它。
通過你的第一個注意,如果你的意思是有很多文件要索引,那很好。您可以使用相同的IndexWriter來處理多個文檔而不關閉它。只需循環使用()語句即可在同一個IndexWriter中索引多個文檔。
關於你的第二個音符,你必須在你的IndexWriter()變化被IndexReader()看到之前執行一個commit()(或close())。您始終可以使用IndexReader()進行搜索,但它只能看到自上次IndexWriter.Commit()以來的索引。
我推薦Lucene在這些重要的細節行動。它幫助了我很多。
我的答案是否適合你?你需要額外的信息嗎? –
非常感謝。你的信息就夠了。 – amir
我很高興聽到這個消息。你熟悉接受答案嗎?或者我的答案中有些東西缺失,導致您不接受它? –