Solr导入MySQL中的数据
一、目标
将MySQL数据库中的数据导入至Solr中,并且由Solr生成中文索引,使用Solr查询信息。
二、数据导入
1、将/solr-8.2.0/dist/下的两个jar和mysql-connector-java.jar 拷贝到/solr-8.2.0/server/solr-webapp/webapp/WEB-INF/lib文件夹下。一共三个jar。


2、修改/solr-8.2.0/server/solr/articles/solrconfig.xml,
在<requestHandler name="/select" class="solr.SearchHandler">之上添加如下代码:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
结果如下图:

3、然后在同级目录conf下新建data-config.xml文件。

data-config.xml文件中设置数据库的连接信息和数据表的映射信息(sorl中的field映射表中的column)。
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test" user="root" password="123"
encoding="UTF-8" />
<document>
<entity name="articles" dataSource="source1" pk="id" query="select id,title,createDate from articles">
<field name="id" column="id" />
<field name="title" column="title" />
<field name="createDate" column="createDate" />
</entity>
</document>
</dataConfig>
4、在Solr中添加field属性。可以直接在conf文件下的managed-schema中手动添加配置field信息。(不推荐)
注意:id主键列是默认存在的,不能修改和删除的。
<field name="createDate" type="pdate" uninvertible="true" indexed="true" stored="true"/>
<field name="title" type="text_ik" uninvertible="true" indexed="true" stored="true"/>
也可以使用Solr提供的图形界面添加,如下图:(强烈推荐)
需要分词查询的列选择数据类型为text_ik;

添加完成后,可以在这里查看添加的field的信息。

5、以上准备工作就做完了,重启服务后就可以看见操作页面了。重点是第三步和第四步。不同的程序操作不一致。

6、数据插入成功后,可以在Query中查询。先查询所有:

再使用分词查询关键字:title:吉林

至此数据库导入信息完成。

浙公网安备 33010602011771号