下面我们需要将这张表中的数据从mysql中导入到solr的索引数据库中。
第一步:找到solr所在的目录\solr-8.2.0\dist,把dataimport相关的两个jar包和mysql数据库连接jar包复制到solr启动服务器下,也就是我们之前配置的tomcat,apache-tomcat-9.0.26\webapps\solr\WEB-INF\lib目录下。
第二步:编辑\solr-8.2.0\solrhome\allencore(自己命名的core)的下面的配置文件solrconfig.xml添加下面代码。
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
第三步:在solrconfig.xml同级目录下面添加 data-config.xml,也就是我们刚刚配置文件里面写的,用来配置连接的数据库以及查询的sql语句。
<?xml version="1.0" encoding="UTF-8"?> <dataConfig> <dataSource name="source1" type="JdbcDataSource" driver="com.mysql.cj.jdbc.Driver" url="*********" user="*********" password="*********" batchSize="-1" /> <document> <entity name="article" pk="id" dataSource="source1" query="select * from article" > <field column="id" name="id"/> <field column="title" name="title"/> <field column="context" name="context"/> <field column="img_path" name="img_path"/> <field column="look" name="look"/> <field column="love" name="love"/> <field column="label_id" name="label_id"/> <field column="user_id" name="user_id"/> <field column="create_date" name="create_date"/> <field column="update_date" name="update_date"/> </entity> </document> </dataConfig>
第四步:修改\solr-8.2.0\solrhome\allencore下的managed-schema文件,添加对应的<field>节点。
<field name="title" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="context" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="img_path" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="look" type="pint" indexed="true" stored="true" required="true" multiValued="false" /> <field name="love" type="pint" indexed="true" stored="true" required="true" multiValued="false" /> <field name="label_id" type="pint" indexed="true" stored="true" required="true" multiValued="false" /> <field name="user_id" type="pint" indexed="true" stored="true" required="true" multiValued="false" /> <field name="create_date" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="update_date" type="string" indexed="true" stored="true" required="true" multiValued="false" />
第五步:登录管理端,选择数据表,点击Execute进行拉取数据。
第六步:查看Query是否有数据。
数据导入成功!