Sorl环境搭建与mysql表导入数据

windows安装solr

一.solr windows安装流程

官网下载地址:https://solr.apache.org/downloads.html

我下载的是8.11.2版本,注意如果需要下最新版本需要jdk版本比较偏高,不然启动无法兼容问题

在这里插入图片描述下载完后,解压到自己文件夹位置

启动solr: 命令窗口使用管理员身份启动
进入到软件bin 目录下: \file\solr-8.11.2\bin
常用命令:

//solr服务默认端口为8983
solr start
//可以指定端口
solr start -p 8984

//关闭solr服务的所有端口
solr stop -all
//关闭solr服务的指定端口
solr stop -p 8984

启动成功后访问地址:http://localhost:8983/
在这里插入图片描述
二导入mysql 数据到solr
cmd 命令创建实例:

solr create -c "zyy-test"
说明:zyy-test 可以是你自己创建的实例名称

创建完后ui界面可以看到自己创建的实例,不用命令也可以在ui上创建看个人

修改配置:
1.导入jar包
  数据库驱动的jar:mysql-connector-java-8.0.11.jar (注意这里jar包的版本要根据你数据库的版本来我的数据库是mysql8.0)

data-import的jar:在根目录dist下有这两个包solr-dataimporthandler-8.11.2.jar和solr-dataimporthandler-extras-8.11.2.jar。
  复制这三个jar包到\solr-8.11.2\server\solr-webapp\webapp\WEB-INF\lib下
2.修改配置,修改目录:\solr-8.11.2\server\solr\zyy_test\conf
上一步创建好的实例可以在solr 文件里面看到
在这里插入图片描述
我们进入目录\solr-8.11.2\server\solr\zyy_test\conf
data-config.xml 配置文件配置,没有文件就添加文件添加数据源与映射表

<dataConfig>
    <dataSource
            driver="com.mysql.jdbc.Driver"
            url="jdbc:mysql://127.0.0.1:3306/txxy?characterEncoding=utf-8"
            user="zyy"
            password="#alitest_wz92" />
    <document>
        <entity name="phone_area" query="select * from phone_area">
            <field column="cname" name="cname" />
        </entity>
        <entity name="tb_xzqh_areas" query="select * from tb_xzqh_areas">
            <field column="id" name="id" />
            <field column="code" name="code" />
            <field column="name" name="name" />
            <field column="cityCode" name="cityCode" />
            <field column="provinceCode" name="provinceCode" />
            <field column="modify_time" name="modify_time" />
        </entity>
    </document>
</dataConfig>

修改solrconfig.xml 文件需要引入数据源

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

修改 managed-schema 文件,有些版本名称叫schema,我在这里采坑了
添加表对应分词字段,否则无法显示

    <field name="cname" type="string" indexed="true" stored="true" multiValued="false"/>

    <field name="code" type="string" indexed="true" stored="true" multiValued="false"/>
    <field name="name" type="string" indexed="true" stored="true" multiValued="false"/>
    <field name="cityCode" type="string" indexed="true" stored="true" multiValued="false"/>
    <field name="provinceCode" type="string" indexed="true" stored="true" multiValued="false"/>

在这里插入图片描述
对应表:

CREATE TABLE `tb_xzqh_areas` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(6) DEFAULT NULL,
  `name` varchar(100) DEFAULT NULL,
  `cityCode` varchar(6) DEFAULT NULL,
  `provinceCode` varchar(6) DEFAULT NULL,
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `udx_areas_code` (`code`)
) ENGINE=InnoDB AUTO_INCREMENT=10886 DEFAULT CHARSET=utf8 COMMENT='县级(区县)';

CREATE TABLE `phone_area` (
  `rcode` varchar(6) CHARACTER SET utf8 DEFAULT NULL,
  `ccode` varchar(6) CHARACTER SET utf8 DEFAULT NULL,
  `acode` varchar(6) CHARACTER SET utf8 DEFAULT NULL,
  `rname` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
  `cname` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
  `aname` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
  `nname` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
  KEY `idx_ccode` (`ccode`),
  KEY `idex_acode` (`acode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

配置完毕后重启sorl

导入数据:
在这里插入图片描述
全量查询导入的数据:
在这里插入图片描述
就这样完成了数据导入

三.删除导入的数据
在solr客户端,访问你的索引库(我认为最方便的方法)

1)documents type 选择 XML
2)documents 输入下面语句

<delete><query>*:*</query></delete>
<commit/>

在这里插入图片描述
点击Submit Document 即可
2、solr-用url,使用 stream 相关参数删除数据:

如:

根据id删除数据

http://localhost:8080/solr/update/?stream.body=

id值&stream.contentType=text/xml;charset=utf-8&commit=true

根据查询参数条件删除数据

http://localhost:8080/solr/update/?stream.body= 参数&stream.contentType=text/xml;charset=utf-8&commit=true

stream 相关参数:

stream.file=(服务器本地文件);

stream.url 分别指到你的删除文本,这里是直接字符串内容用 stream.body 参数。

commit 参数是指提交,提交了才能看到删除效果。

删除指令有两种,一是:用 包装;二是: 包装。指令都很明显,一个是 id 值(是在 schema.xml 的 uniqueKey 所指字段的值,而不是索引内部的 docId);query 值是查询串,如:title:“solr lucene”。

最后,最后祝君好运~~

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟-要努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值