Lucene.NET - 无法使用IndexWriter删除文档

Rya*_*ers 2 c# asp.net lucene indexing lucene.net

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

var writer = new IndexWriter(directory, analyzer, false);
Run Code Online (Sandbox Code Playgroud)

对于具体文件,我打电话给:

writer.DeleteDocuments(new Term(...));
Run Code Online (Sandbox Code Playgroud)

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

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

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

Sha*_*ore 7

该字段必须编入索引.如果某个字段未编入索引,则其字词不会显示在枚举中.