zoukankan      html  css  js  c++  java
  • 解决lucene 重复索引的问题

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

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

     
    Document document = new Document();
    document.add(new Field("content", "刘德华 很帅" , Field.Store.YES , Field.Index.ANALYZED ,TermVector.NO));
    document.add(new Field("id" , "1231231" , Field.Store.YES , Field.Index.NOT_ANALYZED , TermVector.YES));


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

    之后就是加入Document了:

      Term id=new Term("id",1231231);

     
    indexWriter.updateDocument(id,document);

    利用update方法就可以避免添加重复索引了,当索引 里有id为1231231的文档时,就不添加索引,当没有时,就添加索引

    建议id为docment中唯一可以识别的键,如果没有的话,再考虑md5

  • 相关阅读:
    在eclipse 中添加 Tomcat
    eclipse启动报错:code13
    基础_cup给出的内存地址
    巫师3_战斗_水中水鬼
    git checkout
    git学习
    Linux软件包管理之yum在线管理
    Vagrant入门1
    mvn java项目README.md文件范例
    深入理解yum工作原理
  • 原文地址:https://www.cnblogs.com/zzlp/p/5010038.html
Copyright © 2011-2022 走看看