Solr(五)Solr从Mysql导入数据,Solr数据库批量导入

环境要求

  • solr7.x

前提

搭建一个Solr服务器并创建一个core,参考:Solr(一)基于tomcat的solr环境搭建

步骤

一、创建一张测试用的表

创建一张表取名solr_data,表中包含三个字段(id,name,title),手动插入测试数据,如下图:

二、配置data-config.xml

在solrcore中conf目录新建一个data-config.xml文件,添加如下内容:

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<!-- 配置数据库的地址 -->
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/crm" user="root" password="root" />
    <document>
    <!-- solr_data 对应数据库的表名 -->
        <entity name="haLock" query="select * from solr_data" deltaQuery="select * from solr_data">
        <!-- 对应的字段名 column表示数据库的字段名,name表示solr中的字段名-->
            <field column="id" name="id" />
            <field column="title" name="text_ik" />
            <field column="name" name="name" />
        </entity>
    </document>
</dataConfig>

三、使data-config.xml配置生效

编辑solrcore中conf目录下的solrconfig.xml,在<requestHandler name="/select" class="solr.SearchHandler">标签前加入如下配置使data_config.xml生效

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

四、检查schema文件

关于schema配置详解可以参考上一片的文章(Solr(四)Solr7.X中文分词器使用,IKAnalyzer使用及配置),里面有写。

上面data-config.xml的字段名需要在schema中配置,检查一下schema是否包含有id、name、text_ik字段,如果没有则需要手动添加,格式如下:

<field name="字段名" type="字段类型" indexed="true" stored="true"/>

id、name字段solr默认都已经配有的,所以我这里不用再配,text_ik字段是我上一篇中配的中文分词器(Solr(四)Solr7.X中文分词器使用,IKAnalyzer使用及配置)就按这个格式进行配置:

<field name="text_ik" type="text_ik" indexed="true" stored="true"/>

五、导入需要用到的jar

将solr原始目录中的dist文件夹下的solr-dataimporthandler、solr-dataimporthandler-extras两个jar包拷贝到solr的WEB-INF\lib下

下载mysql连接包(mysql-connector-java)拷贝到solr的WEB-INF\lib下。

启动、测试

重启solr,在如下页面中点【Execute】按钮导入数据,再按【Refresh status】刷新,右边状态栏绿色表示导入成功

查询一下数据是否已生效

导入完成

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值