osborn0221
2013-05-06 14:20
浏览 362

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

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • xiao_phoenix 2013-05-06 23:13
    已采纳

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

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

    点赞 打赏 评论

相关推荐 更多相似问题