【Solr6.3学习】从MySQL中导入数据

准备环境

  • Solr6.3
  • MySQL数据表
  • mysql-connector-java-5.1.40-bin.jar

Step 1: 修改managed-schema并建立索引字段

在~/solr-6.3.0/server/solr/core_name/conf目录下找到managed-schema文件,并建立如下索引字段。其中每一个field name都对应MySQL数据表的列名称,且需要把managed-schema中原有的id删除。

<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="title" type="text_ik" indexed="true" stored="true" />
<field name="slug" type="text_ik" indexed="true" stored="true" />
<field name="html" type="text_ik" indexed="true" stored="true" />

Step 2:安装连接包

将mysql-connector-java-5.1.40-bin.jar拷贝到~/solr-6.3.0/server/solr/lib目录下。

Step 3:创建并配置data-config.xml

在~/solr-6.3.0/server/solr/core_name/conf目录下创建data-config.xml,并修改配置。其中每一个field column也与数据库一一对应。

$ vim data-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
    <dataSource name="mysql" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:" user="" password=""/>
    <document >
        <entity name="posts" transformer="HTMLStripTransformer" query="SELECT id,title,slug,html FROM posts WHERE status='published'">
            <field column="id" name="id"/>
            <field column="title" name="title"/>
            <field column="slug" name="slug"/>
            <field column="html" name="html" stripHTML="true"/>
        </entity>
    </document>
</dataConfig>

Step 4:修改solrconfig.xml配置

在~/solr-6.3.0/server/solr/core_name/conf目录下修改solrconfig.xml,在config 标签里添加如下配置。

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
       <str name="config">data-config.xml</str>
    </lst>
</requestHandler>

Step 5:restart Solr