2009-06-23 130 views
3

我有一個每晚都會生成Lucene搜索索引的.net窗口服務。 我首先從數據庫中獲取所有記錄,並使用IndexWriter的AddDocument方法將其添加到Lucene索引,然後在從方法返回之前調用Optimize方法。 由於獲取的記錄非常大,索引編制需要大約2-3分鐘才能完成。 正如您所知,Lucene在生成索引時會生成中間段文件,並在調用Optimize時將整個索引壓縮爲3個文件。如何知道Lucene索引生成過程何時完成

有無論如何我可以知道這個索引生成過程是由Lucene完成的,索引是否可用於搜索? 我需要知道這一點,因爲我想在流程完成時調用另一個方法。

+0

您通常不需要在每次生成索引時都運行優化,但如果它只需要2-3分鐘,那麼我認爲它不會傷害任何東西。我們的8200萬記錄lucene/solr指數非常大,我很害怕知道優化需要多長時間。 – Hardwareguy 2009-06-23 18:54:22

回答

0

我不明白你爲什麼會需要知道什麼時候結束的Lucene索引。您可以在Lucene索引時執行搜索。事實上,我認爲你可以在優化時進行搜索。

我個人不喜歡搜索鎖文件的想法。在你調用writer.optimize()之後,你不能設置布爾值並切換它嗎?

+0

您可能需要找出何時可以複製構建的索引,以便其他機器將具有本地副本。 – 2010-04-13 14:48:59