2016-09-06 7 views
1

Lucene.netを初めて見ました。私はLuceneインデックスファイルから文書を削除しようとしています。しかし、残念ながら私はそれを達成できませんでした。Luceneのインデックスから文書を削除できません

ここに私のコードです。

public void DeleteDocuments() 
{ 
    Term term = new Term("id", id); 
    Analyzer analyzer = new StandardAnalyzer(LuceneVersion.LUCENE_30); 
    Directory directory = FSDirectory.Open(filePath); 
    IndexWriter writer = new IndexWriter(directory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED); 
    writer.DeleteDocuments(term); 
    writer.Optimize(); 
    writer.Commit(); 
    writer.Dispose(); 
} 

インデックスファイルから文書を削除できません。私を助けてください。

ありがとうございます。

+0

エラーが表示されますか? – Prescott

+0

indexディレクトリにwrite.lockファイルがありますか? –

答えて

0

"id"フィールドに使用しているアナライザーが問題の可能性があります。

IDに文字が含まれている場合、StandardAnalyzerは小文字でそれらのインデックスを作成します。これは、作成している用語が、索引付けされた「ABC」と「abc」と異なる値を持つ可能性があることを意味します。

Fo idタイプのフィールドでは、分析を行わずにフィールドを作成する必要があります。

関連する問題