我正在接手一个项目,所以我仍在学习。该项目使用Lucence.NET。我也不知道这个功能是否正确。无论如何,我正在实例化:

var writer = new IndexWriter(directory, analyzer, false);


对于特定文件,我打电话:

writer.DeleteDocuments(new Term(...));


最后,我将调用通常的writer.Optimize(),writer.Commit()和writer.Close()。

Term对象中的字段是Guid,转换为字符串(.ToString(“ D”)),并使用Field.Store.YES和Field.Index.NO存储在文档中。

但是,使用这些设置,我似乎无法删除这些文档。目标是删除,然后添加更新的版本,因此我得到了同一文档的重复副本。如果需要,我可以提供更多代码/解释。有任何想法吗?谢谢。

最佳答案

该字段必须被索引。如果未对字段进行索引,则其项将不会出现在枚举中。

关于c# - Lucene.NET-无法使用IndexWriter删除文档,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5981659/

10-17 00:17