参考文档:https://blog.csdn.net/xiatiancc/article/details/78902211
Solr的介绍
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Solr是一个高性能,采用Java5开发,
Solr基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
安装环境
linux环境,需要关闭防火墙
centos 7.0 之前版本命令:service iptables stop
centos 7.0 之后版本命令:sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service
安装需要的软件
solr安装配置
jdk需要1.8以上,tomcat需要8.5以上
(1) 解压 solr-7.1.0.zip
unzip solr-7.1.0.zip
解压完成之后如图
将tomcat和solr都移动到 /usr/local/ 的目录下面
mv solr-7.1.0 /usr/local/solr/
(2)将 /usr/local/solr/solr-7.1.0/server/solr-webapp/webapp/ 下面文件夹内容拷贝到tomcat安装目录的 /usr/local/tomcat/tomcat-8.5.37/webapps 里面,并重新命名solr
cp -r /usr/local/solr/solr-7.1.0/server/solr-webapp/webapp/ /usr/local/tomcat/tomcat-8.5.37/webapps/solr
注意:此时tomcat启动,仍然报404,并且看不见日志错误信息,我们一步步来解决
(3)拷贝 log4j.properties 日志到 /usr/local/tomcat/tomcat-8.5.37/webapps/solr/WEB-INF/ 下面
因为solr启动需要观看日志,需要从 /usr/local/solr/solr-7.1.0/server/resources/ 下面拷贝 log4j.properties
\
因为项目日志应该在resource下面,编译后在 classes文件夹下面,所以先要创建classes文件夹
cd /usr/local/tomcat/tomcat-8.5.37/webapps/solr/WEB-INF/
mkdir classes
cp log4j.properties /usr/local/tomcat/tomcat-8.5.37/webapps/solr/WEB-INF/classess/
注意:此时tomcat启动,仍然报404,日志报错显示
(4)查看日志,报错原因
cd /usr/local/tomcat/tomcat-8.5.37/logs/
主要查看这两个日志
步骤一:tail -f catalina.out
重新打开选项卡
步骤二:more localhost.2019-02-12.log
输完步骤二:
发现找不到类,这种原因是缺少jar包,所以报404
(5)拷贝jar包到 /usr/local/tomcat/tomcat-8.5.37/webapps/solr/WEB-INF/lib 目录里面
/usr/local/solr/solr-7.1.0/server/lib/ext目录下的jar包
/usr/local/solr/solr-7.1.0/server/lib 目录下gmetric4j-1.0.7.jar
/usr/local/solr/solr-7.1.0/server/lib 目录下metrics开头的jar
/usr/local/solr/solr-7.1.0/dist/solr-dataimporthandler-* 开头的jar
拷贝步骤一:
拷贝步骤二、步骤三:
拷贝步骤四:
拷贝完成之后,此时页面还是报404,因为还没有配置solrhome
(6)创建solrhome并配置好
在solr同目录下面solrhome,目录位置随意
此时solrhome是空的,需要拷贝一些文件进来,将 /usr/local/solr/solr-7.1.0/server/solr下面的内容拷贝到solrhome里面
删除掉 configsets 文件夹,因为里面缺少文件
rm -rf configsets/
还需要拷贝一个文件进来,我们到示例目录下面拷贝
将文件夹下面内容全部拷贝过来并重命名为 collection_1
cp -r /usr/local/solr/solr-7.1.0/example/example-DIH/solr/solr/ /usr/local/solr/solrhome/
cd /usr/local/solr/solrhome/
mv solr/ collection_1
重命名后
进入collection_1修改 core.properties
vi内容为 collection_1 是当前的显示的Solr集名称
name=collection_1
保存退出,此时还需要修改一处就是,将solrhome的地址绑定到tomcat下面的运行包的web.xml
(7)修改 web.xml
打开 /usr/local/tomcat/tomcat-8.5.37/webapps/solr/WEB-INF/ 目录下面的web.xml修改
将<env-entry>开头注释掉的一段代码块给取消注释,将<env-entry-value>里面的数值改为solrhome的路径保存退出。
重启tomcat,发现是403,这个是权限的问题
将web.xml翻到下面找到
将红框里面的给注释掉
重启tomcat
在浏览器输入地址:http://114.116.24.32:8080/solr/index.html
出现这个界面就是配置完成了,一大圈配置还真不容易啊。
Solr安装完成测试
(1)选择我们的Solr集
其中collection_1就是我们在 core.properties 里面配置的name值
选择之后,下方会出现我们配置在solrhome里面的名称
(2)测试分词器
先输入中文,在选择 Analyse Fieldname / FieldType 为title,点击 Analyse Values 按钮
发现拆词器将中文全部拆分,这样是不符合要求的。需要导入中文拆词器。
(3)下载 IKAnalyzer6.5.0.jar 配置中文拆词器
下载地址:http://download.how2j.cn/1687/IKAnalyzer6.5.0.jar
把这个jar包拷贝到 /usr/local/tomcat/tomcat-8.5.37/webapps/solr/WEB-INF/lib/ 目录下面
cp IKAnalyzer6.5.0.jar /usr/local/tomcat/tomcat-8.5.37/webapps/solr/WEB-INF/lib/
同时还要修改另外一处。/usr/local/solr/solrhome/collection_1/conf/目录下面的 managed-schema 添加一段配置
添加
<!-- 自定义字段名 start -->
<!--配置中文分词器-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<!--配置中文分词器使用的field-->
<field name="title_ik" type="text_ik" indexed="true" stored="true"/>
<field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true" />
<!-- 自定义字段名 end -->
大功告成,重启tomcat。
这样拆分就是比较符合要求的。