Lucene 索引去重

在使用Lucene过程中,会发现当我们为添加新的Document时,会产生重复现象(两次添加同一个Document),毕竟Lucene中没有像数据库中一样,有键可以区分。不过我们可以通过为Document建立类似于键的域,来防止添加重复的Document。

示例(id这个域就当做键使用了,推荐使用MD5码之类的唯一性较好的作为键):

  1. Document document = new Document();

  2. document.add(new Field("content", "刘德华 很帅" , Field.Store.YES , Field.Index.ANALYZED ,TermVector.NO));

  3. document.add(new Field("id" , "1231231" , Field.Store.YES , Field.Index.NOT_ANALYZED , TermVector.YES));


id域不要分析,要不就会影响评分的。

之后就是加入Document了:

indexWriter.updateDocument(new Term("id",1231231"),document);

猜你喜欢

转载自blog.csdn.net/asdfsadfasdfsa/article/details/82226904