osborn0221 2013-05-06 14:20
浏览 380
已采纳

lucene怎样在做增量索引的同时更新旧数据?

现在的项目要求做近实时索引,大约15分钟更行一次。数据会不断新增,而旧数据也会经常被修改。我计划用增量索引来做,根据数据库的更新时间来添加文档。但被更新的文档可能索引里已经有了,添加之后数据可能会重复。

请问如何消除这种重复的可能性,是每添加一个document时都先查一下索引里是不是已经有,还是记录数据库所有的修改操作并将id放到队列里,跑索引的时候一起更新?请问lucene有没有更好的内部机制解决这个问题,比如能不能像数据库一样指定unique的字段?

  • 写回答

1条回答 默认 最新

  • xiao_phoenix 2013-05-06 23:13
    关注

    方案1: 你修改的数据 加一个触发器 如果你要索引的字段被改动后
    把id插入另一张表里 然后跑定时任务 根据这些ID查找出要索引的数据 定时的构建索引 然后再把这些IDdelete掉

    方案2: 用solr 数据更新量不是太大的话 修改了数据可以实时请求solr
    查询也可以用solr提供的api 数据更新量太大了 还是定时请求solr

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动
  • ¥15 大一C语言期末考试,求帮助🙏🙏
  • ¥15 ch340驱动未分配COM
  • ¥15 Converting circular structure to JSON
  • ¥30 Hyper-v虚拟机相关问题,求解答。
  • ¥15 TSM320F2808PZA芯片 Bootloader
  • ¥45 谷歌浏览器出现开发者工具无法显示已创建的,但您可以调试已部署的代码。 状态代码 404, net::ERR HTTP RESPONSE CODE FAILURE
  • ¥15 如何解决蓝牙通话音频突发失真问题
  • ¥15 安装opengauss数据库报错