- 使用solr时,除去在项目里使用代码将数据存入solr,还有一种就是从数据库中直接向solr导入数据
- 本文介绍中的所使用的是solr6,数据库是MySQL,服务器是linux
1、首先在数据库中创建导入solr的表
表字段名称要和solr中的字段名称相同,类型要相符
添加测试数据
2、将jar包放入lib中
将所需数据库导入的solr的jar包放入lib中,即solr-dataimporthandler-6.0.1.jar和solr-dataimporthandler-extras-6.0.1.jar(正常情况下,搭建solr时lib中已经包含了这两个jar包,若没有的话,我的也上传了,下载地址 http://download.youkuaiyun.com/download/u014267869/9600297)
将连接MySQL数据库的jar包也放进去,即mysql-connector-java-5.1.38-bin.jar,我也上传上来了,下载地址 http://download.youkuaiyun.com/download/u014267869/9600309
注:lib文件夹即为安装的tomcat下solr的WEB-INF/lib
3、修改solrconfig.xml文件
solrconfig.xml即在solr中配置项目下的config文件夹中
内容如下:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
4、创建data-config.xml文件
在solrconfig.xml同级目录下创建data-config.xml文件。
内容如下:
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.1.64:3306/yfly" user="root" password="123456" />
<document>
<entity name="solr_date"
query="SELECT id,c_name,c_addr,c_city_addr,n_level,circles,nimgpath,nminprice,lat,lng FROM solr_date WHERE id >= ${dataimporter.request.id}">
</entity>
</document>
</dataConfig>
${dataimporter.request.id}在后面导入时会用到,以此条件为基准读数据。
5、重启solr进行测试
在Custom Parameters中填入id=1,就是在上面设置的参数
Clean选项,是指是否删除未匹配到的数据。也就是在数据库select结果中没有,而solr索引库中存在,则删除。
点击Execute。
查询数据。
导入成功!