您的位置:首页 > 数据库 > MySQL

从数据库(Mysql)进行增导入输入到Solr中

2016-05-16 23:38 381 查看
当从数据库中进行增量导入时,与之前的全部导入的区别在两个属性的设置deltaImportQuery,deltaQuery。

需要重点说明的是这里的deltaQuery(其实就是一个sql语句),中的update_time是solr_t1这个表的一个字段,用来记录每条记录的添加时间,可以在相应的表中建立update_time字段,类型为TIMESTAMP 默认为CURRENT_TIMESTAMP,并且要设置为ON UPDATE CURRENT_TIMESTAMP

<?xml version="1.0" encoding="UTF-8" ?>

<dataConfig>
<dataSource name="solrDB" type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/solr"
user="***"
password="****"/>
<document>
<entity name="solr_t1" pk="id"
query="select id, name from solr_t1"
deltaImportQuery="select id, name from solr_t1 where id='${dataimporter.delta.id}'"
deltaQuery="select id, name from solr_t1 where update_time > '${dataimporter.last_index_time}'">
<field column="id" name="id"/>
<field column="name" name="name"/>
<field column="update_time" name="update_time"/>
</entity>
</document>
</dataConfig>


1、TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

在创建新记录和修改现有记录的时候都对这个字段更新

2、TIMESTAMP DEFAULT CURRENT_TIMESTAMP

在创建新记录的时候把这个记录的这个字段设置为当前时间,但以后修改时,不再刷新这个时间值

3、TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

在创建新记录的时候把这个字段设置为0

NOTE:
>
表示大于号



这里的update_time 是第一种类型(TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)

updata是第二种(TIMESTAMP DEFAULT CURRENT_TIMESTAMP)

第18行记录是被改动了的,update_time 对应的值更新了,但是updata对应的值没有更新

PS:如果不知道如何全部导入,请看从数据库中往solr中导入数据之1

有疑问请留言,欢迎交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: