一、下载Mysql驱动,solr-dataimporthandler-7.3.1.jar ,solr-dataimporthandler-extras-7.3.1.jar
云盘下载
https://pan.baidu.com/s/1cgIMu77WfgGkyJ41iQbGKg
二、将Jar包复制到solr-7.3.1\server\solr-webapp\webapp\WEB-INF\lib
三、修改solr-7.3.1\server\solr\new_core\conf目录下solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
四、在solr-7.3.1\server\solr\new_core\conf目录新建data-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/w2?useUnicode=true&characterEncoding=utf8"
user="root" password="root" batchSize="100"/>
<document>
<entity name="Student"
pk="id"
query="select * from t_student where status=0"
deltaQuery="select id from t_student where dt>'${dataimporter.last_index_time}'"
deletedPkQuery="select id from t_student where status=1"
deltaImportQuery="select * from t_student where id='${dataimporter.delta.id}'">
<field column="id" name="id"/>
<field column="name" name="name"/>
<field column="dt" name="dt" dateTimeFormat="yyyy-MM-dd"/>
</entity>
</document>
</dataConfig>
query:查询数据库表中数据导入到Solr建立索引
deltaQuery:根据时间条件查询出增量数据,只有记录的时间字段比最后建立索引的时间大,都是符合建立增量索引的记录集,此查询只返回ID主键
deletedPkQuery:根据某条件检索需要删除的记录主键ID,solr通过它来删除索引里面对应的数据,此查询只返回ID主键
deltaImportQuery:增量导入,根据上面两个Sql查询的ID,获取的数据,对索引库进行更新操作,可能是删除,添加,修改
在Mysql中新建数据库w1,数据库表t_student
五、在solr-7.3.1\server\solr\new_core\conf\managed-schema定义域
六、在控制台执行导入数据
七、查询结果
全索引URL
http://localhost:8984/solr/#/new_core/dataimport/dataimport?command=full-import&clean=true&commit=true
增量索引URL
http://localhost:8984/solr/#/new_core/dataimport/dataimport?command=delta-import&clean=true&commit=true