全量导入mysql数据到solr进行索引

转载自 https://blog.csdn.net/csdn_avatar_2019/article/details/89404017

1、准备

1)下载mysql驱动包:mysql-connector-java

2)将驱动包考培到solr-8.1.1/dist目录下

2、创建测试数据

-- solr测试表结构
CREATE TABLE meta_solr (
	id int NOT NULL COMMENT '主键',
	name varchar(64) NOT NULL COMMENT '学生姓名',
	sex int default NULL COMMENT '性别 0=女 1=男',
	address varchar(200) DEFAULT NULL COMMENT '居住地址',
	update_time datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'SOLR数据更新时间戳',
	deleted int(1) DEFAULT 0 COMMENT '逻辑删除',
	primary key (ID)
) COMMENT='meta_solr表';
 
-- 全量测试数据
INSERT INTO meta_solr VALUES (1, '张三', 0, '甘肃省兰州市城关区酒泉路211号', default, default);
INSERT INTO meta_solr VALUES (2, '李四', 1, '江西省泰和县中山路', default, default);
INSERT INTO meta_solr VALUES (3, '郭海藻', 0, '北京市朝阳区朝阳人民法院路355号', default, default);
INSERT INTO meta_solr VALUES (4, '唐三', 1, '斗罗大陆史莱克学院1号楼', default, default);
INSERT INTO meta_solr VALUES (5, '小舞', 1, '斗罗大陆史莱克学院22号楼', default, default);
INSERT INTO meta_solr VALUES (6, '萧炎', 1, '斗气大陆五大家族萧家门房', default, default);
INSERT INTO meta_solr VALUES (7, '哈登', 1, '美国火箭丰田球场', default, default);

3、创建和配置核心目录

1)在solr-8.1.1/server/solr下创建meta_db目录(核心名称作为目录),核心名称为:meta_db(可以理解为数据库)

2)将solr-8.1.1/server/solr/configsets/_default下conf目录拷贝到solr-8.1.1/server/solr/meta_db目录下

3)修改solr-8.1.1/server/solr/meta_db/conf/solrconfig.xml,在<requestHandler name="/select" class="solr.SearchHandler">前面上加上一个dataimport的处理的Handler

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

4)修改solr-8.1.1/server/solr/meta_db/conf/solrconfig.xml,引入mysql和solr数据导入相关配置包

<!-- 引入mysql相关配置jar包-->
<lib dir="${solr.install.dir:../../../..}/dist/" regex="mysql-connector-java-8.0.16.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />

5)在solr-8.1.1/server/solr/meta_db/conf下创建data-config.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
    <dataSource name="data_source"
                type="JdbcDataSource"
                driver="com.mysql.cj.jdbc.Driver"
                url="jdbc:mysql://192.168.3.10:3306/meta_db"
                user="root"
                password="root"
                batchSize="-1"/>
    <document name="meta_solr_doc">
        <!-- 全量导入数据配置 -->
        <entity name="meta_solr" 
                dataSource="data_source"
                pk="id" 
                query="select id, name, sex, address, DATE_FORMAT(update_time, '%Y-%m-%d %H:%i:%S') as updateTime, deleted from meta_solr">
            <field column="id" name="id"/>  
            <field column="name" name="name"/>
            <field column="sex" name="sex"/>
            <field column="address" name="address"/> 
            <field column="updateTime" name="updateTime"/>
            <field column="deleted" name="deleted"/>
        </entity>
    </document>
</dataConfig>

格式化时间

<entity name="meta_solr" 
        dataSource="data_source"
        pk="id" 
        query="select id, name, sex, address, DATE_FORMAT(update_time, '%Y-%m-%d %H:%i:%S') as updateTime, deleted from meta_solr">
    <field column="id" name="id"/>  
    <field column="name" name="name"/>
    <field column="sex" name="sex"/>
    <field column="address" name="address"/> 
    <field column="updateTime" name="updateTime"/>
    <field column="deleted" name="deleted"/>
</entity>

6)修改solr-8.1.1/server/solr/meta_db/conf/managed-schema,这是solr对数据库里的数据进行索引的模式(或者在solr管理界面添加)

<!-- 映射数据库表结构的字段,update_time和deleted可忽略-->
<field name="name" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="sex" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="address" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="updateTime" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
<field name="deleted" type="string" multiValued="false" indexed="true" required="true" stored="true"/>

7)重启solr

8)创建核心

 

4、导入数据,点击Dataimport,勾选clean和commit,点击Execute,没有报错会indexing,刷新之后就会提示导入的行数等信息

 

5、验证是否导入

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值