一直想写一个Solr系列,但自己并没有实施的很好,一是身为一个大三学生,平时专业课较多,又具有一定难度,要想学好已属不易,二是本学期选的课题都用不到Solr,只能去先学习掌握课题有关知识,才能继续自己的爱好。今天有网友问我是否了解数据库导入方面的问题,就顺便写一下自己的学习笔记。
1.查看配置
Solr6.2.1 学习笔记(一)搭建运行环境(两种方式)中我们创建了mycore,选中mycore,点击Dataimport,如果出现下图内容,则说明配置文件夹conf下面已经存在数据库导入的配置文件,只需要修改配置文件就可以按照自己的需求导入数据。
如果出现下面的情况,则说明没有相关配置文件,需要添加并修改。
2.修改配置文件solrconfig.xml
在solrconfig.xml中存在一些requestHandler,如果出现test核的情况,首先检查solrconfig.xml中是否存在名字为dataimport的requestHandler。
通过查询,我们并没有发现名字为dataimport的requestHandler,因此需要手动添加。为了以后便于维护此文件,我们就在requestHandler起始位置,约为750行处,添加如下内容:
<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配置文件
在需要配置数据导入的Core的conf文件夹下面添加data-config.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/se" user="name" password="password" batchSize="-1" />
<document>
<entity name="book" pk="ISBN" dataSource="source1"
query="select * from book"
<!--query是full-import的查询语句-->
deltaQuery="" 是增量更新的查询语句-->
>
<field column="ISBN" name="ISBN"/>
<field column="Title" name="Title"/>
<field column="AuthorID" name="AuthorID"/>
<field column="Publisher" name="Publisher"/>
<field column="PublishDate" name="PublishDate"/>
<field column="Price" name="Price"/>
<field column="image" name="image"/>
</entity>
</document>
</dataConfig>
field 中的column对应数据库的一个字段,name对应managed-schema中的name
3.导入数据
配置完成后重启solr,再次查看Dataimport会出现如下内容:
可以根据自己的需求选择合适的配置。导入完成后,query,就会看到相应数据。