単純な検索モジュールを実装するために Lucene.Net (バージョン 2.9.4.1) を使用しています。次のコードを使用して、ドキュメントがインデックスに存在する場合、ドキュメントを削除しようとしています。
var analyzer = new StandardAnalyzer(Version.LUCENE_29);
var indexWriter = new IndexWriter(
LuceneSearch._luceneDir,
analyzer,
IndexWriter.MaxFieldLength.UNLIMITED);
var searchQuery = new TermQuery(new Term("ListID", listingDoc.Get("ListID")));
indexWriter.DeleteDocuments(searchQuery);
ドキュメントが存在する場合は削除してから、インデックスに再度追加しようとしているlistingDoc
タイプです。追加部分は正常に機能しますが、削除部分は機能しません。つまり、ドキュメントが存在する場合は削除されません。Document
したがって、用語を検索して一致すると、複数回表示されます...ここで間違っていることを指摘してください
ASP.Net MVC3 と Entity Framework4 を使用しています。レコードが更新されるたびに、インデックスを更新するつもりですが、代わりに複製されています。検索すると、更新の回数に応じて、結果が 2 回または 3 回表示されます。
使っindexWriter.UpdateDocument(args);
てみたけど駄目…