如何设置一个字段以保持lucene中的行唯一?

Shi*_*oft 6 lucene uniqueidentifier

我的应用为lucene中的每一行生成唯一ID,并保存到数据库.一个sutation是如果有和行具有相同的id,我想更新它,而不是插入新的行和索引.

怎么做?

jpo*_*ntz 10

这正是IndexWrite#updateDocument方法的目的.第一个参数是索引中必须唯一的术语.

例如,

String id = "42";
Document doc = new Document();
Field field = new Field("id", id, Store.YES, Index.NOT_ANALYZED);
doc.add(field);

indexWriter.updateDocument(new Term("id", id), doc);
Run Code Online (Sandbox Code Playgroud)

将确保这doc是索引中唯一ID为42的文档.

  • 是。该文档指出“通过先删除包含条款的文档,然后添加新文档来更新文档”。因此,在以前没有使用相同ID为文档编制索引的特定情况下,不会删除任何文档。 (2认同)