2011-08-06 37 views
1

創建lucene indexWriter開銷?

 
IndexWriter myWriter = new IndexWriter(pathOnDisk); 
int segCount = myWriter.GetSegmentCount(); 
if (segCount > 1) 
    myWriter.Optimize(); 
myWriter.Close() 

我想爲50個不同的索引目錄運行上面的代碼,所以我想知道是否打開一個索引編寫器有開銷?

回答

0

它有一些開銷,包括創建鎖定文件(請參見第133行),閱讀段信息以及其他一些可能會或可能不會很貴的東西。

0113打開IndexWriter爲正在使用的目錄創建一個鎖定文件。試圖打開 另一個IndexWriter在同一目錄將導致一個 {@LockObtainFailedException}。如果使用同一目錄中的IndexReader從索引中刪除文檔 ,則也會拋出{@LockObtainFailedException} 。

檢查出java source,從第816行開始。它不是一個小的構造函數,但是你必須要判斷它有多重要。