Solr数据导入(从Mysql导入数据建索引)

一、下载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&amp;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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值