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

问题描述

现在的项目要求做近实时索引,大约15分钟更行一次。数据会不断新增,而旧数据也会经常被修改。我计划用增量索引来做,根据数据库的更新时间来添加文档。但被更新的文档可能索引里已经有了,添加之后数据可能会重复。请问如何消除这种重复的可能性,是每添加一个document时都先查一下索引里是不是已经有,还是记录数据库所有的修改操作并将id放到队列里,跑索引的时候一起更新?请问lucene有没有更好的内部机制解决这个问题,比如能不能像数据库一样指定unique的字段?

解决方案

方案1: 你修改的数据 加一个触发器 如果你要索引的字段被改动后 把id插入另一张表里 然后跑定时任务 根据这些ID查找出要索引的数据 定时的构建索引 然后再把这些IDdelete掉方案2: 用solr 数据更新量不是太大的话 修改了数据可以实时请求solr查询也可以用solr提供的api 数据更新量太大了 还是定时请求solr

时间: 2024-10-21 11:23:12

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

sphinx增量索引的一个问题

但最近发现增量的总是搜索不到,今天看了下运行日志,有如下提示: [Sun Apr 17 19:30:01.876 2011] [ 3400] WARNING: rotating index 'news_delta': cur to old rename failed: rename /dev/shm/sphinx/data/news_delta.spa to /dev/shm/sphinx/data/news_delta.old.spa failed: No such file or direc

sphinx增量索引的一个问题_php技巧

但最近发现增量的总是搜索不到,今天看了下运行日志,有如下提示: [Sun Apr 17 19:30:01.876 2011] [ 3400] WARNING: rotating index 'news_delta': cur to old rename failed: rename /dev/shm/sphinx/data/news_delta.spa to /dev/shm/sphinx/data/news_delta.old.spa failed: No such file or direc

Lucene5学习之增量索引(Zoie)

      清明节放假期间,就一直在思考着Lucene增量索引问题,通过google我了解到了Zoie的存在,于是就开始2天的学习Zoie之旅,对Zoie的原理以及使用基本掌握,还特地使用Zoie实现了Lucene索引增量索引.不过Zoie已经好久没更新了,Zoie目前版本只支持到Lucene4.3.0,为此我花了2个多小时,修改了Zoie的源码将它升级使其支持Lucene5.0,我修改过的Zoie最新源码我已经上传到我的百度网盘,下载地址如下:     Zoie-for-Lucene5.0源码

跟益达学Solr5之增量索引MySQL数据库表数据

   Solr5中如何增量索引MySQL数据库表中的数据,这个问题之前有某个童鞋问过我,今天午休时间就腾空更新篇博客,希望能帮助到你们.        为了测试方便,我首先从京东网站弄了点测试数据,如图:    这里要声明下,我不是在给京东商城打广告哈,仅仅是随便找个网站弄点测试数据,这部分工作全是我无聊手动插入MySQL数据库中的,如图:  建表SQL以及测试数据,我待会儿会上传到底下的附件里.然后你需要在solrconfig.xml配置文件中启用全量导入和增量导入请求处理器,如图:  然后分

基于Solr DIH实现MySQL表数据全量索引和增量索引

实现MySQL表数据全量索引和增量索引,基于Solr DIH组件实现起来比较简单,只需要重复使用Solr的DIH(Data Import Handler)组件,对data-config.xml进行简单的修改即可.Solr DIH组件的实现类为org.apache.solr.handler.dataimport.DataImportHandler,在Solr的solrconfig.xml中配置两个handler,配置分别说明如下. 全量索引 solrconfig.xml配置如下: 1 <reque

Centos使用tar命令做增量备份脚本

想给subversion做个自动备份的脚本,一看目录大小,已经有几十个G了. 天天做完整备份太费系统资源了,增量备份是一个很好的解决方案. 每周做一次完整备份,然后每天只做增量备份. Centos做增量备份还是很容易的,tar命令就可以完全胜任. 在cron里设置,每周日晚执行(每周日全备份,其余时间增量备份). 示例一:  代码如下 复制代码 #!/bin/bash # define dayofweek=`date "+%u"` today=`date "+%Y%m%d&q

请哪位大神知道如何用VBA代码做word索引,求代码啊。。拜托拜托。。

问题描述 请哪位大神知道如何用VBA代码做word索引,求代码啊..拜托拜托.. 请哪位大神知道如何用VBA(visual basic)代码做word索引,求代码啊..拜托拜托.. 解决方案 我也来个:需要你手动提供关键词哦.... Sub Test() BiaoJiAll ""编辑|学校"" ''End SubSub BiaoJiAll(ByVal bStr As String) ''bStr为关键词,用|分割 On Error Resume Next Dim i

sphinx实现增量索引 分布式索引几个例子

增量索引,其实就是增加的内容,例如:存款有100块,今天挣了10块,这10块就是增量了 分布式索引,可以这样理解,想开公司钱不够,需要向很多人借钱.也就是把大家钱集中一起使用.一,测试表和数据  代码如下 复制代码 mysql> desc sph_counter;  +------------+---------+------+-----+---------+-------+  | Field | Type | Null | Key | Default | Extra |  +---------

两个字段相减的索引,为什么新增的数据会失效

问题描述 两个字段相减的索引,为什么新增的数据会失效 两个数量A-B 之差作为索引,并且sql里也用这个A-B>0作为条件. 每天数据都会增加很多A-B>0的数据,每天也会更新很多数据为A=B. 这个索引为什么每天删掉重建才有作用? 有什么解决方法吗? 解决方案 现在这么高级? 什么数据库啊 还能为 A-B 的差做索引? 解决方案二: oracle 数据库 解决方案三: oracle 数据库