2014-04-16 43 views
0

我正在製作一個使用Lucene作爲搜索引擎的網絡應用程序。首先,用戶必須選擇一個文件/目錄進行索引,然後他可以搜索它(噢!)。我的問題發生在用戶嘗試索引大量數據時:例如,如果用戶刷新頁面並嘗試索引另一個目錄,則會拋出異常,因爲第一個索引仍在運行(寫入.lock顯示)。已知,如何停止第一個索引?我試圖關閉IndexWriter沒有成功。如何在啓動另一個程序之前停止運行索引?

在此先感謝。

回答

0

爲什麼要打斷第一次索引操作並重新啓動?

在我看來,你應該顯示一個簡單的圖像,顯​​示系統正在工作(正如尼爾森所說:「系統應該始終通過在合理的時間內的適當反饋讓用戶瞭解發生了什麼。」)和何時用戶按刷新你應該攔截事件並阻止另一個索引進程的執行。

+0

是的,我同意你的意見。實際上,有一個反饋給用戶,表明索引正在發生..但是如果它花費的時間太長,並且用戶不想等到它完成,那麼該怎麼辦?用戶必須有一種方法來取消以前的索引,而不會影響整個應用程序 – lucasdc

0

您可能正試圖在index indexer打開的索引目錄上打開一個indexwriter實例。如果您在兩個不同的索引目錄上打開了indexwriter,那麼write.lock的異常將不會發生。你能否檢查一下新的indexwriter實例是不是正在寫入已經打開indexwriter的以前打開過的索引目錄。

相關問題