2010-09-16 91 views
1

在做关于在lucene中删除文档的研究时,我已经显示使用IndexReaders delete()方法传入文档ID。现在我真的需要这样做,看起来lucene目前不支持这种方法,并且我很少运气找到当前的方法来做到这一点。lucene删除记录,已弃用?

任何想法?

回答

1
+0

然而我需要能够通过docid删除。我有一个很大的指数,并且以独特的方式重建索引是不可能的,因为它超过了100GB。几个索引合并在一起给重复条目,我需要找到一种方法来摆脱那些重复的。我发现代码使用索引读取器.delete()方法执行此操作,但现在它已不存在,因此我很难找到一种方法来执行此操作。 – recursive9 2010-09-16 17:28:33

1

文件ID是内部Lucene的,真是不应该使用。除其他问题外,他们可能会在未发出警告的情况下更改。

你是如何获得文档ID?大概通过查询?然后根据该查询删除。另外,如果你有自己的唯一ID字段,你可以做writer.DeleteDocuments(new Term("MyIDField", "ID to delete"));