索引创建完毕,就要考虑怎么定时的去重建, 除了写solrj,可以定时调用下面两条url进行增量或者全量创建索引 
  全量:http://ip:port/webapp_name/core_name/dataimport?command=full-import 
  增量:http://ip:port/webapp_name/core_name/dataimport?command=delta-import 
  全量索引直接调用就可以,因为是完全删除重建 
  如果是增量索引,就稍微麻烦一些,首先你必须在表中定义两个字段,一个是删除标志:isdeleted,另一个则是记录创建时间:create_date,名称随意,这两个字段主要通知solr对已有索引的删除,和需要导入的新纪录的时间(solr建立索引会生成dataimport.properties,里面last_index_time=2014-03-07 14\:48\:27记录了上次建立索引的时间,需要你指定create_date在这个时间之后的记录进行增量) 
  接下来需要你在dataimport.xml增加如下配置:

<entity pk="ID"  name="test"
query="select * from test WHERE isdelete=0 "
deltaQuery="select ID from test where
create_date>'${dataimporter.last_index_time}'"
deletedPkQuery="select ID from myinfo where isdelete=1"
deltaImportQuery="select * from myinfo where
ID='${dataimporter.delta.ID}'">

含义如下:  
       deltaQuery 
       查询出所有经过修改的记录的ID  
       可能是修改操作,添加操作,删除操作产生的  
       (此查询只对增量导入起作用,而且只能返回ID值)   
       deletedPkQuery 
       此操作值查询那些数据库里伪删除的数据的ID(即isdelete标识为1的数据)  
       solr通过它来删除索引里面对应的数据  
       (此查询只对增量导入起作用,而且只能返回ID值)  
      
        deltaImportQuery 
        次查询是获取以上两步的ID,然后把其全部数据获取,根据获取的数据  
        对索引库进行更新操作,可能是删除,添加,修改  
        (此查询只对增量导入起作用,可以返回多个字段的值,一般情况下,都是返回所有字段的列)

solr-DIH:dataimport增量全量创建索引的更多相关文章

  1. 利用ant脚本 自动构建svn增量/全量 系统程序升级包【转】

    引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文 ...

  2. HBase备份还原OpenTSDB数据之Export/Import(增量+全量)

    前言 本文基于伪分布式搭建 hadoop+zookeeper+hbase+opentsdb之后,文章链接:https://www.cnblogs.com/yybrhr/p/11128149.html, ...

  3. 利用ant脚本 自动构建svn增量/全量 系统程序升级包

    首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...

  4. 增量+全量备份SVN服务器

    #!/bin/bash # 获取当前是星期几 DAY=$(date +%w) # 获取当前的日期 DATE=$(date '+%Y-%m-%d-%H-%M') # 获取当前版本库中最新的版本 CURR ...

  5. RDS备份到OSS增量+全量

    一.前言 阿里云的RDS备份是占用使用量的,你购买200G那备份使用量是100G左右,导致备份一般也就存半个月,2个全备份. 那半个月后之前的也就删除了,如果要持续保留更久将花费不少的金钱.所以这里用 ...

  6. orcale增量全量实时同步mysql可支持多库使用Kettle实现数据实时增量同步

    1. 时间戳增量回滚同步 假定在源数据表中有一个字段会记录数据的新增或修改时间,可以通过它对数据在时间维度上进行排序.通过中间表记录每次更新的时间戳,在下一个同步周期时,通过这个时间戳同步该时间戳以后 ...

  7. 10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.创建MySQL数据 create database solr; use solr; DROP TABLE ...

  8. Elasticsearch 索引的全量/增量更新

    Elasticsearch 索引的全量/增量更新 当你的es 索引数据从mysql 全量导入之后,如何根据其他客户端改变索引数据源带来的变动来更新 es 索引数据呢. 首先用 Python 全量生成 ...

  9. Solr DIH以Mysql为数据源批量创建索引

    演示使用solr管理后台,以mysql为数据源,批量建索引的方法 测试于:Solr 4.5.1, mmseg4j 1.9.1, Jdk 1.6.0_45, Tomcat 6.0.37 | CentOS ...

随机推荐

  1. jdbc练习demo

    //连接云端服务器数据库工具类 public class TestJDBCUtil { public static String driver="com.mysql.jdbc.Driver& ...

  2. Ubuntu 升级内核版本

    查看当前内核版本 sch01ar@ubuntu:~$ uname -r Ubuntu 内核地址:https://kernel.ubuntu.com/~kernel-ppa/mainline/ 打开这个 ...

  3. Shell 函数库

    1.为什么要定义函数库 经常使用的重复代码封装成函数文件 一般不直接执行,而是由其他脚本调用 2.编写一个函数库,该函数库实现以下几个函数. 1.加法函数:add 2.减法函数:reduce 3.乘法 ...

  4. Python/Java读取TXT文件

    JAVA: public static void readTextFile(String filePath) { try { String encoding = "GBK"; Fi ...

  5. FDStoredProc 存储过程控件 强

    //FireDAC FDStoredProc1->StoredProcName = "myReport1"; FDStoredProc1->Prepare(); FDS ...

  6. docker swarm test

    consul: 192.168.111.111: docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap ...

  7. webHttpBinding、basicHttpBinding和wsHttpBinding区别

    webHttpBinding is the REST-style binding, where you basically just hit a URL and get back a truckloa ...

  8. 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

    实现EXCEL导入功能:web网站,excel导入用OLEDB同样会报错:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 报错信息: Exception caught. ...

  9. x64位windows 2003 server中“Server 对象 错误 'ASP 0177 : 800700c1' Server.CreateObject 失败”问题

    给朋友看一个老asp网站图片不能上传问题,试过网上各种办法都提示: Server 对象 错误 'ASP 0177 : 800700c1' Server.CreateObject 失败 最终问题出在x6 ...

  10. token的作用及实现原理

    1:首先,先了解一下request和session的区别request 指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象 ...