• 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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

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

    创建完后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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

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

      <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
        <lst name="defaults">
          <str name="config">data-config.xmlstr>
        lst>
      requestHandler>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    修改 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"/>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

    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;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    配置完毕后重启sorl

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

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

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

    <delete><query>*:*query>delete>
    <commit/>
    
    • 1
    • 2

    在这里插入图片描述
    点击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”。

    最后,最后祝君好运~~

  • 相关阅读:
    MySQL8.0 忘记 root 密码
    今年2023双十一腾讯云服务器的价格优惠力度如何?
    基于Jeecgboot前后端分离的流程管理平台演示系统安装(三)
    图神经网络综述:模型与应用
    20道高频CSS面试题快问快答
    英文论文(sci)解读复现【NO.21】一种基于空间坐标的轻量级目标检测器无人机航空图像的自注意
    C++11 - 2 - 右值引用与移动构造
    Unity与C#
    【Flink】设置了watermark,没有使用watermark触发窗口计算
    基于CSP的运动想象EEG分类任务实战
  • 原文地址:https://blog.csdn.net/weixin_43829047/article/details/126303826