我正在接管一个项目,所以我仍然在学习这一点。该项目使用Lucence.NET。我也不知道这个功能是否正确。无论如何,我实例:Lucene.NET - 无法使用IndexWriter删除文档
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。
但是,通过这些设置,我似乎无法删除这些文档。目标是删除,然后添加更新的版本,以便获取同一文档的重复内容。如果需要,我可以提供更多的代码/解释。有任何想法吗?谢谢。
我做了一些更多的研究后,我意识到并测试了这个。我为列编制索引,重建它,现在文档正确地被删除。谢谢。 – 2011-05-12 17:34:30
我看到了同样的问题,但我不明白你的意思是“该字段必须编入索引”。你能澄清一下吗? – 2013-04-05 18:30:23