定时索引相关知识

增量更新需要配置个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之增量索引的更多相关文章

  1. solr全文检索原理及solr5.5.0 Windows部署

    文章原理链接:http://blog.csdn.net/xiaoyu411502/article/details/44803859 自己稍微总结:全文检索主要有两个过程:创建索引,搜索索引 创建索引: ...

  2. Sitecore8.2 Solr5.1.0配置步骤

    1.首先下载Solr安装包,官方提供了几种下载,我选的的solr的5.1.0版本zip包,下载链接:http://mirror.bit.edu.cn/apache/lucene/solr. 2.下载后 ...

  3. solr5.5.0在CenOS上的安装与配置

    solr5.5.0在CenOS上的安装与配置 1. Solr简介 Solr是一个基于Lucene的Java搜索引擎服务器.Solr 提供了层面搜索.命中醒目显示并且支持多种输出格式(包括 XML/XS ...

  4. Solr5.0.0定时更新索引

    由于通过配置的方式定时更新不生效,故通过代码执行定时任务更新 package com.thinkgem.jeesite.modules.meeting.task; import java.io.IOE ...

  5. Linux安装版本solr-5.3.0

    准备材料:solr-5.3.0.tgz 下载路径:http://mirrors.hust.edu.cn/apache/lucene/solr/ 安装solr 1.解压solr [root@svn-se ...

  6. Solr5.4.0部署到Tomcat

    所用工具 下载 solr 5.4.0 版本:http://www.apache.org/dyn/closer.lua/lucene/solr/5.4.0 下载 Tomcat(6以上版本),另外可以根据 ...

  7. 与众不同 windows phone 8.0 & 8.1 系列文章索引

    [源码下载] [与众不同 windows phone 7.5 (sdk 7.1) 系列文章索引] 与众不同 windows phone 8.0 & 8.1 系列文章索引 作者:webabcd ...

  8. solr4.0.0学习(二) 数据库导入clob与blob为索引

    导入clob很简单.但是blob好像没有提供方法,所以改了一下源码,重新编译替换class文件,竟然成功了. 先把配置文件贴上 SCHEMA.XML <?xml version="1. ...

  9. 使用SolrNet访问Solr-5.5.0

    由于今年年初刚发布的Solr-5.5.0,网上所能找到的资料少之又少,所以只能靠自己一点点摸索. 从某Hub上下载了SolrNet源码,按照教程提交文档或者查询均失败,无奈只得跟断点一点点差怎么回事. ...

随机推荐

  1. queue模块

    queue队列 :使用import queue,用法与进程Queue一样 queue is especially useful in threaded programming when informa ...

  2. UVa-11582:Colossal Fibonacci Numbers!(模算术)

    这是个开心的题目,因为既可以自己翻译,代码又好写ヾ(๑╹◡╹)ノ" The i’th Fibonacci number f(i) is recursively defined in the f ...

  3. 模拟ssh、黏包、hashlib模块(MD5)

    待补充..... 一.模拟ssh 二.黏包 1.黏包现象 让我们基于tcp先制作一个远程执行命令的程序(命令ls -l ; lllllll ; pwd) res=subprocess.Popen(cm ...

  4. 实现一个redis连接池

    #*****************jedis连接参数设置*********************#redis服务器ipredis.ip=169.254.130.122#redis服务器端口号red ...

  5. P1051 谁拿了最多奖学金——水题

    题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1 ...

  6. CSS 布局说——可能是最全的

    前言 现在,我们被称为前端工程师.然而,早年给我们的称呼却是页面仔.或许是职责越来越大,整体的前端井喷式的发展,使我们只关注了js,而疏远了css和html. 其实,我们可能经常在聊组件化,咋地咋地. ...

  7. Jenkins执行shell脚本启动tomcat失败解决方法

    环境:Centos 7 Jenkins版本:2.124 状况:Jenkins会执行服务器某个目录下的Shell, 脚本中功能是复制替换某两个配置文件,然后关闭tomcat,重启Tomcat. 但是,T ...

  8. 双飞翼布局介绍-始于淘宝UED-2011年淘宝玉伯写的

    仔细分析各种布局的技术实现,可以发现下面三种技术被经常使用: 浮动 float 负边距 negative margin 相对定位 relative position 这是实现布局的三个最基本的原子技术 ...

  9. uvm_object ——太极

    无极生太极——无名天地之始 太极生两仪——有名万物之母   文件: $UVM_HOME/src/base/uvm_object.svh 类: uvm_object The uvm_object cla ...

  10. Android学习总结(十四) ———— ListView Item多布局的实现

    一.基本概念 实现一个Item的多布局.像我们经常在用的各种即时通讯工具,QQ.微信等,假设他们的会话界面是ListView实现的,那么ListView就有多种Item布局,要实现ListView里面 ...