索引创建完毕,就要考虑怎么定时的去重建, 除了写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. UDP协议发包的使用(DatagramSocket、DatagramPacket)

    1.UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传 ...

  2. oracle完全删除表空间

    步骤一: 删除user drop user ×× cascade 说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的. 步骤二: 删除 ...

  3. SpringBoot2.0实现静态资源版本控制

    写在最前面 犹记毕业第一年时,公司每次发布完成后,都会在一个群里通知[版本更新,各部门清理缓存,有问题及时反馈]之类的话.归根结底就是资源缓存的问题,浏览器会将请求到的静态资源,如JS.CSS等文件缓 ...

  4. 接口自动化(六)--使用QQ邮箱发送邮件

    接口测试执行完发送一个邮件,这里使用QQ邮箱发送,先要拿到QQ邮箱授权码,方法自行百度 # coding=utf-8 import smtplib from email.mime.text impor ...

  5. OpenFeign使用笔记

    是什么 Feign是一个声明式Web Service客户端.使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注 ...

  6. 概率分布之间的距离度量以及python实现

    1. 欧氏距离(Euclidean Distance)       欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式.(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧 ...

  7. Elastic Search的学习

    那些必须要知道的事儿 自然语言处理 自然语言处理之中文分词器 什么是Apache Lucene 什么是elasticsearch 搭建elasticsearch环境 Windows下 Java环境配置 ...

  8. 两种定时器 setInterval(一直执行) setTimeout(只执行一次)

    //第一种 var obj = setInterval(function () { console.log(123); clearInterval(obj) }, 1000); //第二种 var t ...

  9. Linux 清除N天前的 日期文件夹(yyyy-MM-dd)

    本人碰到模糊目录移除,小记一下 1:准确目录情况  2:模糊目录情况 先来介绍准备目录情况 本人在网上找到的demo, 目录结构(在/root/zlogs) 脚本文件b.sh #!/bin/bash ...

  10. springboot 中 集成druid ,redis

    1,导入druid jar包 <!--引入drud--> <dependency> <groupId>com.alibaba</groupId> < ...