在VMware®15Pro虚拟机中的CentOS7系统下安装与配置Solr整合tomcat8.5与安装中文IK分词器

Solr功能概述

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。

Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。


Solr的web工程配置

1、下载与解压

从Solr官方网站(http://lucene.apache.org/solr/ )下载7.7.2版本,根据Solr的运行环境,Linux环境需要下载solr-7.7.2.tgz,windows系统需要下载solr-7.7.2.zip。

虚拟机CentOS系统下载solr-7.7.2.tgz并解压:

wget http://

solr 需要运行在一个Servlet容器中,Solr7.7.2要求jdk使用1.8以上,Solr默认提供Jetty(java写的Servlet容器),本教程使用Tocmat8.5作为Servlet容器,环境如下:

Solr:Solr7.7.2

Jdk:jdk1.8.0_231

Tomcat:apache-tomcat-8.5.47

解压安装包

cd /home/kangmianfeng/Downloads

tar -zxvf solr-7.7.2.tgz

删除残留文件

rm -f solr-7.7.2.tgz

移动到本地安装目录

mv solr-7.7.2 /usr/local/solr-7.7.2

2、Solr7.7.2整合tomcat8.5

Solr解压后server/solr-webapp下有一个webapp目录,它就是Solr的Web工程项目,把它复制到tomcat的webapps目录下并改名为solr,这样更方便我们访问使用。

1.复制webapp框架

cd /usr/local/solr-7.7.2/server/solr-webapp
cp -r webapp /usr/local/tomcat8.5/webapps/solr

2.配置系统环境变量

vim /etc/profile

# solr environment
export SOLR_INSTALL_HOME=/usr/local/solr-7.7.2
export PATH=$PATH:${SOLR_INSTALL_HOME}/bin

按I键开始编辑。然后按Esc再键入:wq保存退出。

使环境变量修改生效

source /etc/profile

3. 关闭CentOS7.5的默认防火墙和SElinux

systemctl stop firewalld
setenforce 0

4.复制web项目依赖的jar包

先拷贝server\lib\ext目录下所有jar包到tomcat8.5的webapps\solr\WEB-INF\lib目录下

cd /usr/local/solr-7.7.2/server/lib/ext
cp -r /usr/local/solr-7.7.2/server/lib/ext/. /usr/local/tomcat8.5/webapps/solr/WEB-INF/lib

以及server\lib目录下gmetric4j-1.0.7.jar,和所有以metrics开头的jar包,拷贝到 tomcat8.5\webapps\solr项目的WEB-INF\lib下:

cd /usr/local/solr-7.7.2/server/lib
cp gmetric4j-1.0.7.jar metrics-* /usr/local/tomcat8.5/webapps/solr/WEB-INF/lib/

5.拷贝log4j日志的2个.xml配置文件

在 tomcat8.5下的webapps\solr\WEB-INF目录中,新创建classes目录。

mkdir /usr/local/tomcat8.5/webapps/solr/WEB-INF/classes
cp /usr/local/solr-7.7.2/server/resources/log4j2.xml  /usr/local/tomcat8.5/webapps/solr/WEB-INF/classes/log4j2.xml
cp /usr/local/solr-7.7.2/server/resources/log4j2-console.xml  /usr/local/tomcat8.5/webapps/solr/WEB-INF/classes/log4j2-console.xml
cd /usr/local/tomcat8.5/webapps/solr/WEB-INF/classes
ls

6.创建配置solr_home及创建solrcore文件目录

mkdir /usr/local/solr-7.7.2/solr_home

 解压后的Solr的server目录下有一个solr目录,把这个目录里的所有内容复制到刚刚创建的solr_home目录下

cp -r /usr/local/solr-7.7.2/server/solr/* /usr/local/solr-7.7.2/solr_home

 

vim /usr/local/solr-7.7.2/solr_home/solr.xml

# 将主机名和端口号修改为自己的主机名和端口号

# 如果主机名没有映射IP地址的话用IP地址

<str name="host">${host:192.168.179.128}</str>

<int name="hostPort">${tomcat.port:8983}</int>

7.修改tomcat8.5里的webapps\solr\WEB-INF\web.xml文件

如下图所示设置solr_home的映射磁盘位置。

vim /usr/local/tomcat8.5/webapps/solr/WEB-INF/web.xml

<!--配置web.xml告诉solr工程我们的solr_home的位置-->
<env-entry>
    <env-entry-name>solr/home</env-entry-name>
    <env-entry-value>/usr/local/solr-7.7.2/solr_home</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
 </env-entry>

如果出现上图403错误,编辑web.xml照片截图中位置,找到如下代码,将其注释关闭权限控制即可。

vim /usr/local/tomcat8.5/webapps/solr/WEB-INF/web.xml

浏览器访问地址(ip是虚拟机ens33的IP地址)

http://192.168.179.128:8080/solr/index.html#/


安装中文分词器

就上图所示,显示No cores available,这时候如果直接new会报错。因为在solrhome里,需要先创建“new_core”的目录和默认的配置文件夹conf以及data目录。

技巧:使用vi、vim跳转到文档开头gg。跳转到文档末尾:G

new_core目录的创建

先在solr_home下新建一个取名为collection1的文件夹。

mkdir /usr/local/solr-7.7.2/solr_home/collection1

接着在collection1里新建一个data目录存放索引用。

mkdir /usr/local/solr-7.7.2/solr_home/collection1/data

复制必要的启动配置文件

然后复制官方提供的模板conf目录及其中所有文件到collection1文件夹里。

cd /usr/local/solr-7.7.2/server/solr/configsets/_default
cp -r conf /usr/local/solr-7.7.2/solr_home/collection1

#创建中文分词配置文件失败报错,复位不要的conf就执行以下命令。

cd /usr/local/solr-7.7.2/solr_home/collection1
rm -rf conf/managed-schema
rm -rf data/*
cd /usr/local/solr-7.7.2/server/solr/configsets/_default/conf
cp managed-schema /usr/local/solr-7.7.2/solr_home/collection1/conf

IK中文分词器的安装与配置

先要把IK中文分词jar包拷贝到tomcat的solr项目的lib目录,

适配Solr-7.7.2的IK分词jar包版本与名字必须是如下所示:

cd /home/kangmianfeng/Downloads
mv ik-analyzer-solr5-5.x.jar /usr/local/tomcat8.5/webapps/solr/WEB-INF/lib
mv solr-analyzer-ik-5.1.0.jar /usr/local/tomcat8.5/webapps/solr/WEB-INF/lib

然后将IK的拓展词典和配置文件复制到web工程的classes目录

cd /home/kangmianfeng/Downloads
mv IKAnalyzer.cfg.xml stopwords_ik.dic 
extdict_ik.dic /usr/local/tomcat8.5/webapps/solr/WEB-INF/classes

最后再去配置修改添加在managed-schema

vim /usr/local/solr-7.7.2/solr_home/collection1/conf/managed-schema

 修改Solr7.7.2版本的managed-schema文件,添加fieldType:

<fieldType name="text_ik" class="solr.TextField">   
  <analyzer type="index">
    <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" />
  </analyzer>
</fieldType>

下载IK分词器适用于5.0.0版本~7.7.2版本的Solr使用


==================================================

参考资料:solr 中文分词器IKAnalyzer和拼音分词器pinyin

在VMware® Workstation 中的CentOS7虚拟机下安装jdk-8u231

win10环境下使用VM15PRO虚拟机CentOS7系统下安装tomcat8.5

end

发布了95 篇原创文章 · 获赞 20 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_40993412/article/details/102623353