Solr 搭建之同步Mysql数据库

在这里插入图片描述

安装Solr

  • 下载solr的官方jar包 Solr官方下载地址
  • 本人采用的 solr-7.7.2-src.tgz 安装包来进行搭建
  • 下载本地解压
    在这里插入图片描述

创建core工作区间

  • 可以理解为Mysql的database,一个本地的localhost下可以有多个database
  • 拷贝目录并修改为自定义的core, 拷贝server/solr/configsets/_default文件夹 至 server/solr 下面并自定义名称为post
    在这里插入图片描述
  • 首次拷贝只有conf 文件夹,我们来看一下里面的结构
    在这里插入图片描述
  • 这两个是核心配置文件,如果没有那就自行创建同名的xml文件
  • 注意Solr 5.X版本以下 并不叫managed-schema.xml 而叫 schema.xml文件

安装IK分词器

  • 下载IK分词器的jar包 IK分词器依赖 对应Solr版本号去下载对应的IK分词器
  • 下载之后放到 solr-7.7.2/server/solr-webapp/webapp/WEB-INF/lib 文件夹下
    在这里插入图片描述
  • 配置 managed-schema.xml 添加如下代码至任意位置来开启使用IK分词器分词

在这里插入图片描述

  • 安装完成,一会会在Solr客户端来测试 是否安装成功…

配置同步Mysql的配置

创建/修改data-config.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<dataConfig> 
<dataSource type="JdbcDataSource" 
			driver="com.mysql.jdbc.Driver" 
			url="jdbc:mysql://127.0.0.1:3306/nsi_database?useSSL=false&amp;serverTimezone=UTC&amp;tinyInt1isBit=false" 
			user="root" 
			password="123456"/> 
<document>

    <entity name="nsi_post_category_item" query="SELECT * FROM `nsi_post_category_item` WHERE is_check = 1">
        <field column="item_id" name="itemId"/> 
        <field column="title" name="title"/> 
        <field column="summary_desc" name="summaryDesc"/> 
        <field column="content" name="content"/> 
		<field column="post_type" name="postType"/> 
        <field column="post_icon" name="postIcon"/> 
        <field column="comment_num" name="commentNum"/> 
        <field column="share_num" name="shareNum"/> 
        <field column="watch_num" name="watchNum"/> 
        <field column="collect_num" name="collectNum"/> 
        <field column="tag" name="tag"/> 
        <field column="open_id" name="openId"/> 
        <field column="avatar" name="avatar"/> 
        <field column="nick_name" name="nickName"/> 
        <field column="is_check" name="isCheck"/> 
    </entity>
    
</document>
</dataConfig>
  • dataSouce标签就不叙述了,写过JDBC的都知道是什么意思
  • entity name:可以是任意名称也可以是实体类
    query:就是你要查询的sql语句
  • field column:就是这个表里面的字段,一定要对应否则指定不上
    name:别名,是为了给Solr做索引和分词用的,但一定要对应managed-schema.xml 里面的name 否则便会创建索引和分词失败

配置managed-schema.xml

  <field name="itemId" type="pint" indexed="true" stored="true"/>
  <field name="title" type="text_ik" indexed="true" stored="true"/>
  <field name="summaryDesc" type="text_ik" indexed="true" stored="true"/>
  <field name="content" type="text_ik" indexed="true" stored="true"/>
  <field name="postType" type="text_ik" indexed="true" stored="true"/>
  <field name="postIcon" type="string" indexed="false" stored="true"/>
  <field name="commentNum" type="pint" indexed="false" stored="true"/>
  <field name="shareNum" type="pint" indexed="false" stored="true"/>
  <field name="watchNum" type="pint" indexed="true" stored="true"/>
  <field name="collectNum" type="pint" indexed="false" stored="true"/>
  <field name="tag" type="text_ik" indexed="true" stored="true"/>
  <field name="openId" type="string" indexed="false" stored="true"/>
  <field name="avatar" type="string" indexed="false" stored="true"/>
  <field name="nickName" type="string" indexed="false" stored="true"/>
  <field name="isCheck" type="pint" indexed="false" stored="true"/>
  <field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
  • 添加至任意位置即可,上一个配置文件的name 对应 这个配置文件的name
  • type:声明该字段类型(Solr有 pint,plong,string,text_*)等等很多类型,只列举最常用的,也可以指定分词器的类型
  • indexed:是否创建索引 true/false
  • stored:是否在索引库中显示 true/false
  • id: 如果你的数据表有这个字段你可以代替Solr的id,否则solr会自动生成一个uuid的字符串存入这个id

启动Solr

  • 进入solr-7.7.2/bin 文件夹下 进入dos命令行
  • solr start 启动solr
  • solr stop -all 关闭solr (还有很多命令,自行百度)

在这里插入图片描述

  • 看到这个提示便是启动成功
  • 访问localhost:8983 即可进入Solr界面
    在这里插入图片描述

添加core的配置

  • 首次进入需要指定core的工作区间即刚才所修改的配置文件
    在这里插入图片描述
  • name:一般是跟core的文件夹名相一致
  • instanceDIr:core的文件路径自行拷贝
  • dataDir:在post文件夹下创建data文件夹并把路径指定上
  • config:在你core/conf/solrconfig.xml 文件路径
  • schema:在你core/conf/managed-schema.xml 文件路径
  • 添加完以上路径 直接Add Core 即可
    在这里插入图片描述

同步Mysql数据至Solr索引库

检测IK分词器安装

  • 找到刚才定义的core
    在这里插入图片描述
  • 测试IK分词器是否安装成功

在这里插入图片描述

  • 如果能找到代表IK分词器安装成功
  • 随便输入一句话能看到IK分词器给我们将这一句话进行分词,以后用这些词或字便能进行检索

同步数据

在这里插入图片描述

  • 打开dataImport 标签
  • 看到右侧Configuration配置就是我们的 data-config.xml里面的配置
  • Excute 点击导入 Refresh 是刷新
    在这里插入图片描述
  • 导入成功
  • 看一下索引库是否有数据
    在这里插入图片描述
  • 进入左侧Query面板
  • Solr的查询语句可以自行百度
  • numFound是总条数,里面的参数项是我自定义的别名

手写不易,但能帮君,请赏个赞!!!
如需转载请写明出处,送人玫瑰,手留余香

发布了24 篇原创文章 · 获赞 33 · 访问量 2391

猜你喜欢

转载自blog.csdn.net/weixin_41241629/article/details/104231566
今日推荐