Linux centos solr8.11.2下载与安装配置建立索引(全量、增量更新)全套图解版

目录

1.文档说明

2.下载准备2.1.Solr下载地址

2.2.ik-analyzer下载地址

3.安装配置3.1.前提准备

3.2.启动服务

 3.3.停止服务

3.4.安全访问

3.5.Add Core

3.6.配置中文分词器

3.7.与MYSQL表建立索引(准备条件)

3.8.与MYSQL表建立索引(全量更新)

3.9.与MYSQL表建立索引(增量更新)

3.10.Solr建立索引3.10.1.建立索引

 3.10.2.刷新状态

 3.10.3.文档数量

 3.11.查询验证

3.12.Solr定时任务建立索引3.12.1.获取验证令牌

 3.12.2.配置定时任务


1.文档说明

此文档说明在Linux Centos7.5版本下安装solr8.11.2的过程、安全访问、配置core、配置中文分词、建立与MYSQL指定表的全量索引和增量索引方式、查询数据验证、定时调度索引等。

安装环境当前版本

[root@VM-0-17-centos ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@VM-0-17-centos ~]# cat /proc/version
Linux version 3.10.0-1127.19.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Aug 25 17:23:54 UTC 2020

2.下载准备
2.1.Solr下载地址

solr下载官方首页:Solr Downloads - Apache Solr

目前最新版本是9.0的,9.0对JDK的版本要求比较高,基于目前服务器相关应用所以选择了8.11.2版本的下载。

8.11.2版本下载地址如下:https://dlcdn.apache.org/lucene/solr/8.11.2/solr-8.11.2.tgz

2.2.ik-analyzer下载地址

ik-analyzer下载(中文分词需用到),可参考地址:

Central Repository: com/github/magese/ik-analyzer

选择了8.3.1版本下载:

https://repo1.maven.org/maven2/com/github/magese/ik-analyzer/8.3.1/ik-analyzer-8.3.1.jar

3.安装配置
3.1.前提准备

安装好JDK1.8并设置好JAVA_HOME环境变量,JDK的安装步骤不在这里描述。

3.2.启动服务

tar xvf solr-8.11.2.tgz
进入bin目录:/solr-8.11.2/bin
./solr start -p 8983 -force

浏览器访问以下地址可查看solr服务界面

http://localhost:8983/

若是购买的云服务器,需要开通安全组端口8983的访问权限或者主机防火墙端口,若是装了宝塔面板的也需要在宝塔中开放此端口。

 3.3.停止服务

进入bin目录:/solr-8.11.2/bin

./solr stop

3.4.安全访问

在目录/solr-8.11.2/server/etc下面新增文件user.properties

vi user.properties

cshongye:12345678,admin

其中cshongye为登录名(自行调整),12345678为密码(自行调整),admin是登录角色;也是可以参考此格式配置多行,多行也就意味着可以配置多个登录用户访问solr服务;

找到目录:/solr-8.11.2/server/contexts,编辑文件solr-jetty-context.xml

增加以下内容:

  <!--添加配置权限认证  开始-->
  <Get name="securityHandler">
    <Set name="loginService">
      <New class="org.eclipse.jetty.security.HashLoginService">
       <Set name="name">verify—name</Set>
      <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/user.properties</Set>
      </New>
    </Set>
  </Get>
  <!--添加配置权限认证  结束-->

找到目录:/solr-8.11.2/server/solr-webapp/webapp/WEB-INF编辑文件web.xml,添加以下内容: 

 <security-constraint>
    <web-resource-collection>
      <web-resource-name>Solr</web-resource-name>
      <url-pattern>/</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>admin</role-name>
    </auth-constraint>
  </security-constraint>
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>verify-name</realm-name>
  </login-config>

经过以上配置操作后,重启服务后访问系统需用户名和密码方可进入solr服务。

3.5.Add Core

点击按钮Add Core会报错,缺少XML文件的配置,这个时候需要复制

/solr-8.11.2/server/solr/configsets/_default/conf下面所有的文件到目录:/solr-8.11.2/server/solr/new_core

复制过来后,将managed-schema文件重命名为schema.xml

然后刷新页面Core Admin

同时此地方还会添加新core的时候后端会提示缺少dataimport的类,需要将\solr-8.11.2\dist目录下的两个JAR文件solr-dataimporthandler-8.11.2.jar、solr-dataimporthandler-extras-8.11.2.jar 复制到目录:solr-8.11.2\server\solr-webapp\webapp\WEB-INF\lib下

3.6.配置中文分词器

可参考链接:solr 使用IK分词器_鸭梨的药丸哥的博客-CSDN博客_solr配置ik分词器

也可以参考章节“单机版solr”进行安装:

cc/ik-analyzer-solr

其中第2点的5个文件在这个位置可以下载:

cc/ik-analyzer-solr - Gitee.com

将这5个文件上传至目录:/solr-8.11.2/server/solr-webapp/webapp/WEB-INF/classes

其中第3点,在目录/solr-8.11.2/server/solr/new_core/conf编辑文件managed-schema

将2.2.ik-analyzer下载的JAR文件放置到\server\solr-webapp\webapp\WEB-INF\lib下

验证中文分词:

3.7.与MYSQL表建立索引(准备条件)

CREATE TABLE `rss_item` (
  `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '主键',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '标题',
  `link` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网址',
  `author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '作者',
  `keyword` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '关键字',
  `pudate` datetime DEFAULT NULL COMMENT '发布日期',
  `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '摘要',
  `del` int DEFAULT '0' COMMENT '是否删除 正常0、删除1',
  `createId` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
  `create_by` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人姓名',
  `create_date` datetime DEFAULT NULL COMMENT '创建时间',
  `updateId` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人',
  `update_by` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人名称',
  `update_date` datetime DEFAULT NULL COMMENT '更新时间',
  UNIQUE KEY `rss_item_id_IDX` (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci 

3.8.与MYSQL表建立索引(全量更新)

在目录server\solr\new_core\conf下新建文件data-config.xml并填入以下内容

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <!-- 数据库信息 -->
    <dataSource type="JdbcDataSource" 
        driver="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://localhost:3308/dbname?characterEncoding=utf-8" 
        user="your username" password="your self password" encoding="UTF-8"/>
    <document>
         <entity name="rss_item" pk="id" 
		 query="select * from rss_item where del = 0"
		 >
            <!-- 对应数据库表的字段 -->
            <field column="id" name="id" />
            <field column="title" name="title" />
			<field column="link" name="link" />
			<field column="author" name="author" />
			<field column="keyword" name="keyword" />
			<field column="pubdate" name="pubdate" />
			<field column="create_date" name="create_date" />
			<field column="create_date" name="create_date" />
            <field column="description" name="description" />
        </entity>
    </document>
</dataConfig>

3.9.与MYSQL表建立索引(增量更新)

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <!-- 数据库信息 -->
    <dataSource type="JdbcDataSource" 
        driver="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://localhost:3308/dbname?characterEncoding=utf-8" 
        user="your username" password="your self password" encoding="UTF-8"/>
    <document>
         <entity name="rss_item" pk="id" 
		 query="select * from rss_item where del = 0"
		 deltaImportQuery="select * from rss_item where id='${dih.delta.id}'"
		 deltaQuery="select id from rss_item where create_date > '${dataimporter.last_index_time}' and del=0"
		 deletedPkQuery="select id from rss_item where del=1"
		 >
            <!-- 对应数据库表的字段 -->
            <field column="id" name="id" />
            <field column="title" name="title" />
			<field column="link" name="link" />
			<field column="author" name="author" />
			<field column="keyword" name="keyword" />
			<field column="pubdate" name="pubdate" />
			<field column="create_date" name="create_date" />
			<field column="create_date" name="create_date" />
            <field column="description" name="description" />
        </entity>
    </document>
</dataConfig>

基于以上data-config.xml中field的字段,在/server/solr/new_core/conf/managed-schema.xml

/server/solr/new_core/conf编辑文件managed-schema需要追加fieldType和field相关的属性

<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>

<field name="create_date" type="string" indexed="true" stored="true" multiValued="false" />
<field name="pubdate" type="string" indexed="true" stored="true" multiValued="false" />
<field name="link" type="string" indexed="true" stored="true" multiValued="false" />
<field name="title" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="author" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="keyword" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="description" type="text_ik" indexed="true" stored="true" multiValued="false" />

在目录server\solr\configsets\_default\conf文件solrconfig.xml中追加

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

3.10.Solr建立索引
3.10.1.建立索引

 3.10.2.刷新状态

 3.10.3.文档数量

 3.11.查询验证

以上我们建立了索引文档,那我们来验证查询,也想看看索引的数据长什么样子的。

关于query里面的各个参数的使用可以参考:

https://blog.csdn.net/sun5769675/article/details/50718874

3.12.Solr定时任务建立索引
3.12.1.获取验证令牌

 3.12.2.配置定时任务

参照linux  curl命令

curl -H 'Authorization: Basic your token' -X GET http://localhost:8983/solr/new_core/dataimport?command=full-import&clean=true&commit=true&wt=json&indent=true&entity=rss_item&verbose=false&optimize=false&debug=false

可配置到自己的crontab中,或者配置到其他任务调度工具或者宝塔面板的计划任务,以下是宝塔面板计划任务的截图:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值