我是Lucene.net的新手。我一直在尝试从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 :(得分:0)
您的问题可能是您用于" id"字段。
如果您的id包含字母,StandardAnalyzer会以小写形式对其进行索引。这意味着您创建的术语可能具有与索引不同的值" ABC" vs" abc"。
Fo id类型字段应确保在不进行分析的情况下创建字段。