2012-02-16 138 views
0

當一個應用程序獨佔使用Lucene索引時出現錯誤消息。NHibernate搜索和Lucene異常

未處理的異常:NHibernate.Search.Impl.SearchException:無法打開的IndexWriter爲My命名空間 ---> Lucene.Net.Store.LockObtainFailedException:鎖定獲取超時:SimpleFSLock 我的索引路徑 \寫。鎖

我只是徘徊,如果你們之前遇到過同樣的問題?

回答

2

您可能在IndexWriter打開時崩潰,write.lock文件留在索引目錄中。該文件由SimpleFSLockFactory用於確保在任何給定時間針對文件系統索引打開了一個IndexWriter。

進入你的索引目錄,並刪除write.lock文件,如果NHibernate不處理它自動。

+0

當我看到異常時,在索引目錄中找不到write.lock。 – hardywang 2012-02-16 16:47:23

+0

然後我猜NHibernate可能會自己處理它,通過解鎖目錄,當它遇到異常。有一位Nhibernate專家證實這一點很棒。 – 2012-02-16 16:57:05

+0

我的經驗是它不會自動刪除它。我猜你試圖從並行的多線程索引,這是不允許的。 – jishi 2012-02-21 15:33:05