在研究删除lucene中的文档时,我已经证明我使用了IndexReaders delete()方法,传入了文档id。现在我确实需要这样做,看起来lucene目前不支持这种方法,而且我很难找到目前这样做的方法。
有什么想法吗?
答案 0 :(得分:1)
现在可以使用IndexWriter
完成删除http://lucene.apache.org/java/3_0_2/api/all/org/apache/lucene/index/IndexWriter.html
答案 1 :(得分:1)
Doc ID是Lucene内部的,绝对不应该使用。除其他问题外,它们可能会在没有任何警告的情况下发生变化。
您是如何获得文档ID的?想必通过查询?然后根据该查询删除。或者,如果您拥有自己的唯一ID字段,则可以执行writer.DeleteDocuments(new Term("MyIDField", "ID to delete"));