Solr5.0.0 DIH之增量索引
定时索引相关知识
增量更新需要配置个sql(deltaImportQuery、deltaQuery)
deltaImportQuery="select * where id='${dih.delta.id}'"
deltaQuery="select id from book_dept where modify_time > '${dih.last_index_time}'"
deletedPkQuery="SELECT id FROM book_dept WHERE deleteStatus = 2 "
增量导入注意事项
大家可以看到在上图中,entity标签里,deltaImportQuery属性的select语句与deltaQuery属性的select语句是不一样的,差异在于多了一个
where modify_date > '${dataimporter.last_index_time}'.
这是因为solr每次在全量导入时或者增量导入结束时,都会在solrhome\conf\dataimport.properties文件中为每一个entity更新一个导入时间标志,我本地截图如下:

这个配置文件里的属性对象可以在db-data-config.xml里以${}占位符方式填充数值。
重点1:所以在执行deltaQuery时,只会导入数据满足为:modify_date > '${dataimporter.last_index_time}',以此实现增量导入。否则就是全量导入!!!
重点2:在deltaImportQuery语句中,select字段一定要加上你想更新到索引的字段,否则默认不导入为索引!!
deltaQuery语句查出所有被修改的数据的ID
deltaImportQuery对deltaQuery查出来的ID的数据进行索引更新
deletedPkQuery负责删除 数据库中记录为删除 的数据的索引
修改示例
1 在建成全量索引的前提之下修改data-config.xml 增加 deltaImportQuery和deltaQuery
<entity name="bookInfo" pk="BOOK_ID"
query="SELECT
BOOK_ID,
BOOK_NAME,
UPDATE_DATE
from
EL.T_BOOK" deltaImportQuery="select BOOK_ID,BOOK_NAME from EL.T_BOOK where BOOK_ID = '${dataimporter.delta.BOOK_ID}'" deltaQuery="select BOOK_ID from EL.T_BOOK where to_char(UPDATE_DATE,'yyyy-mm-dd hh24:mm:ss') > '${dataimporter.last_index_time}'"
> <field column="BOOK_ID" name="id"/>
<field column="BOOK_NAME" name="bookName"/> </entity>
2 在建成全量索引的前提之下修改data-config.xml在data-config.xml中增加 deltaImportQuery和deltaQuery
<entity name="bookInfo" pk="BOOK_ID"
query="SELECT
BOOK_ID,
BOOK_NAME,
UPDATE_DATE
from
EL.T_BOOK" deltaImportQuery="select BOOK_ID,
BOOK_NAME from EL.T_BOOK where BOOK_ID = '${dataimporter.delta.BOOK_ID}'" deltaQuery="select BOOK_ID from EL.T_BOOK
where to_char(UPDATE_DATE,'yyyy-mm-dd hh24:mm:ss') > '${dataimporter.last_index_time}'"
> <field column="BOOK_ID" name="id"/>
<field column="BOOK_NAME" name="bookName"/>
</entity>

1 中只查ID
2 4 必须一致为表中的字段
5 为固定写法
'${dataimporter.last_index_time}'.
因为solr每次在全量导入时或者增量导入结束时,都会在core\conf\dataimport.properties文件中为每一个entity更新一个导入时间标志,

这个配置文件里的属性对象可以在db-data-config.xml里以${}占位符方式填充数值。
deltaQuery语句就是查询出来上次创建索引之后数据库发生变化的数据(不包含删除)的ID
注意deltaQuery语句返回的仅仅是发生变化的数据的ID,deltaImportQuery语句则是根据deltaQuery语句返回的ID查询出这些记录的全部内容
Solr5.0.0 DIH之增量索引的更多相关文章
- solr全文检索原理及solr5.5.0 Windows部署
文章原理链接:http://blog.csdn.net/xiaoyu411502/article/details/44803859 自己稍微总结:全文检索主要有两个过程:创建索引,搜索索引 创建索引: ...
- Sitecore8.2 Solr5.1.0配置步骤
1.首先下载Solr安装包,官方提供了几种下载,我选的的solr的5.1.0版本zip包,下载链接:http://mirror.bit.edu.cn/apache/lucene/solr. 2.下载后 ...
- solr5.5.0在CenOS上的安装与配置
solr5.5.0在CenOS上的安装与配置 1. Solr简介 Solr是一个基于Lucene的Java搜索引擎服务器.Solr 提供了层面搜索.命中醒目显示并且支持多种输出格式(包括 XML/XS ...
- Solr5.0.0定时更新索引
由于通过配置的方式定时更新不生效,故通过代码执行定时任务更新 package com.thinkgem.jeesite.modules.meeting.task; import java.io.IOE ...
- Linux安装版本solr-5.3.0
准备材料:solr-5.3.0.tgz 下载路径:http://mirrors.hust.edu.cn/apache/lucene/solr/ 安装solr 1.解压solr [root@svn-se ...
- Solr5.4.0部署到Tomcat
所用工具 下载 solr 5.4.0 版本:http://www.apache.org/dyn/closer.lua/lucene/solr/5.4.0 下载 Tomcat(6以上版本),另外可以根据 ...
- 与众不同 windows phone 8.0 & 8.1 系列文章索引
[源码下载] [与众不同 windows phone 7.5 (sdk 7.1) 系列文章索引] 与众不同 windows phone 8.0 & 8.1 系列文章索引 作者:webabcd ...
- solr4.0.0学习(二) 数据库导入clob与blob为索引
导入clob很简单.但是blob好像没有提供方法,所以改了一下源码,重新编译替换class文件,竟然成功了. 先把配置文件贴上 SCHEMA.XML <?xml version="1. ...
- 使用SolrNet访问Solr-5.5.0
由于今年年初刚发布的Solr-5.5.0,网上所能找到的资料少之又少,所以只能靠自己一点点摸索. 从某Hub上下载了SolrNet源码,按照教程提交文档或者查询均失败,无奈只得跟断点一点点差怎么回事. ...
随机推荐
- Java EE学习笔记(二)
Spring中的Bean 1.Bean的配置: a).Bean的本质就是Java中的类,而Spring中的Bean其实就是对实体类的引用,来生产Java类对象,从而实现生产和管理Bean . b).S ...
- mongodb的基本命令操作
mongodb在已经存在管理员的情况下,需要创建一个库 使用管理员进入mongodb的命令行界面 mongo admin -u 管理员名 -p 管理员密码 创建库(进入库) use 库名 创建当前库的 ...
- Django的filter查询
Django的filter查询 name__contains表示精确大小写的模糊查询 使用name__icontains表示忽略大小写 year_count = DownloadFile.object ...
- Redis特点
内存存储,速度极快. 支持的数据类型多,相比较其他的Nosql. 键:字符串 值的六种数据结构:字符串,列表,散列,集合,有序集合,HyperLogLog 附加功能强大
- 通用全局CSS样式
PC全局样式 *{padding:0;margin:0;} div,dl,dt,dd,form,h1,h2,h3,h4,h5,h6,img,ol,ul,li,table,th,td,p,span,a{ ...
- 用vue.js实现购物车功能
购物车是电商必备的功能,可以让用户一次性购买多个商品,常见的购物车实现方式有如下几种: 1. 用户更新购物车里的商品后,页面自动刷新. 2. 使用局部刷新功能,服务器端返回整个购物车的页面html 3 ...
- CF1072C Cram Time
思路: 首先二分找到使x * (x + 1) / 2 <= a + b最大的x,然后令p = min(a, b), q = max(a, b),按照x,x - 1, ..., 1的顺序选取数字把 ...
- jquery select取option的value值发生变化事件
html代码如下所示: <div id = "schedule"> <label>是否设置:</label> <select name=& ...
- 19/03/04 vue基础整理,webpack基础整理
gitUrl : https://gitee.com/jinyujiang/vue_basis_example.git (迭代更新) webpack : 有道云笔记分享 以及码云(迭代更新)
- ionic2 tabs 自定义图标
ionic2 tabs 自定义图标 一.准备资源 tabs icon 的svg格式的矢量图片 二.生成字体样式文件 打开icoMoon网站去制作字体文件. 三.使用字体文件 解压下载的文件,将其中的f ...