2011-07-07 52 views
0

當我更新或添加lucene documnet時出現此錯誤。我知道這種情況發生在索引編寫器被其他資源使用時,我們得到了這個SimpleFSLock Excetion,但在我的場景中,我總是關閉我的IndexWriter,因此沒有打開編輯器的機會。如何在Lucene中解決/修復SimpleFSLock

有沒有辦法,如果我得到這個異常,我可以解決這個問題。

編輯:

static object myLock = new object(); 

    public static void AddDocument(//some params) 
     { 
      lock (myLock) 
      { 
       try 
       { 
//I get the exception thrown on below line [not sure but might be file have been locked due to other resource accessing it : how can i free this lock] 
        IndexWriter writer = new IndexWriter(GetFileInfo(indexName), analyzer, false); 
        writer.AddDocument(*//some document //*); 
        writer.Optimize(); 
        writer.Close(); 
       } 
       catch (Exception ex) 
       { 
        log.LogWarn(null, ex.Message); 
       } 
      } 
     } 
+0

發佈您正在執行鎖定的代碼塊。 –

回答

0

「但在我的情況,我總是閉上的IndexWriter所以沒有被打開的IndexWriter的機會」 我就不會這麼肯定!

0

您不會在代碼中處理異常,您應該有一個finaly子句,在發生異常以清除「write.lock」文件時關閉IndexWriter。

將其添加到您的代碼中,然後轉到您的索引目錄並手動刪除write.lock文件。

相關問題