在建成全量索引的前提之下修改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查询出这些记录的全部内容