2011-07-07 18 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

コード内で例外を処理しないでください。例外が発生したときにIndexWriterをクローズするfinaly節が必要です(「write.lock」ファイルをクリアする)。

これをコードに追加し、インデックスディレクトリに移動してwrite.lockファイルを手動で削除します。

関連する問題