【问题标题】:lucene delete record, deprecated?lucene 删除记录,已弃用?
【发布时间】:2010-09-16 16:54:31
【问题描述】:

在研究如何删除 lucene 中的文档时,我已被证明使用 IndexReaders delete() 方法,传入文档 ID。现在我确实需要这样做,看来 lucene 目前不支持这种方法,而且我在找到当前的方法方面几乎没有运气。

有什么想法吗?

【问题讨论】:

    标签: java lucene


    【解决方案1】:

    【讨论】:

    • 我需要能够被 docid 删除。我有一个大索引,并且不可能重建具有唯一性的索引,因为它超过 100gb。几个索引合并在一起给出了重复的条目,我需要找到一种方法来摆脱那些重复的条目。我找到了使用索引阅读器 .delete() 方法执行此操作的代码,但现在它消失了,我很难找到一种方法来执行此操作。
    【解决方案2】:

    Doc IDs 是 Lucene 内部的,绝对不应该使用。除其他问题外,它们可能会在没有警告的情况下更改。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 2013-02-26
      • 1970-01-01
      • 2019-06-18
      • 1970-01-01
      相关资源
      最近更新 更多