1.安装前准备
1.运行环境
从solr6后,建议用jdk1.8,若用低于1.8版本的jdk,会出现各种问题,
由于是部署在Tomcat中,所以请安装Tomcat,详细方法请百度,
2.solr下载
官方地址:http://archive.apache.org/dist/lucene/solr/
cent下载:
wget http://archive.apache.org/dist/lucene/solr/7.4.0/solr-7.4.0.tgz
建议用迅雷,ftp传到服务器,如果你网速好当我没说。
2 安装solr
1.解压tar包
我这里是放在/opt下
tar -zxvf solr-7.4.0.tgz
2.部署到Tomcat
和一般的web项目有一些不一样,需要注意的有以下几点:
2.1复制并重命名solr目录里的server/solr-webapp/webapp文件夹到/opt/Tomcat8/webapps/solr
我这里把Tomcat放在/opt下,你可以放在随意位置.,只不过复制的时候把路径写全就可以了。
cd /opt
cp -r solr-7.4.0/server/solr-webapp/webapp /opt/Tomcat8/webapps/solr
2.2拷贝solr-7.4.0\server\lib\ext 下的jar包以及lib目录下gmetric4j-1.0.7.jar和metrics开头的jar包拷贝到 Tomcat8\webapps\solr 项目的WEB-INF\lib下,和solr压缩包中solr/dist/solr-dataimporthandler-* 开头的jar全部复制到 Tomcat8\ webapps\solr\WEB-INF\lib 目录中; 我这里是在/opt下。
cp solr-7.4.0/server/lib/ext/* /opt/Tomcat8/webapps/solr/WEB-INF/lib/
cp solr-7.4.0/server/lib/gmetric4j-1.0.7.jar /opt/Tomcat8/webapps/solr/WEB-INF/lib/
cp solr-7.4.0/server/lib/metrics-* /opt/Tomcat8/webapps/solr/WEB-INF/lib/
cp solr-7.4.0/dist/solr-dataimporthandler-* /opt/Tomcat8/webapps/solr/WEB-INF/lib/
2.3创建一个库solrhome
这里拷贝solr-7.4.0\server 下的solr文件夹到其它非中文目录下,重命名为solrhome,我放在了/opt/Tomcat8/下
这个logs是后面要配置的。
2.4关联solr及库solrhome,需要修改tomcat里solr工程的web.xml文件
找到如下代码,打开注释,修改自己的solrhome的路径/put/your/solr/home/here,我的是 /opt/Tomcat8/solrhome 路径。
<!--
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/put/your/solr/home/here</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
-->
然后到最下方,将这一段注释掉,不然会报403错误,完成后保存退出
2.5拷贝solr7.4.0\server\resources下的 log4j2.xml 到Tomcat8/webapps/solr/WEB-INF\classes,如果WEB-INF下没有classes文件那么就创建一个classes文件夹
mkdir -p /Tomcat8/webapps/solr/WEB-INF/classes/
cp -r /opt/solr-7.4.0/server/resources/log4j2.xml /opt/Tomcat8/webapps/solr/WEB-INF/classes/
2.6修改tomcat的bin目录下catalina.bat脚本,增加solr.log.dir系统变量,指定solr日志记录存放地址
vi /opt/Tomcat8/bin/catalina.sh
然后添加
JAVA_OPTS="$JAVA_OPTS -Dsolr.log.dir=/opt/Tomcat8/solrhome/logs"
保存退出
2.7安装准备及各软件使用版本关闭防火墙,输入访问地址:http://IP:8080/solr/index.html
你也可以不用关闭防火墙,开放端口就行了。
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
2.8配置solr的索引库core
点击Core Admin,接着点击Add Core这项,创建的instanceDir和dataDir 需存在,报错如下。(Solr里面的core就像数据库里面的一个表,用来管理索引和相关配置。)
2.9在索引库目录solrhome下创建new_core目录,拷贝配置文件到new_core目录下
2.10配置IK中文分词器
下载地址:https://github.com/magese/ik-analyzer-solr7
内置的分词器不好用,我这里下载的是6.5版本的
unzip ikanalyzer-solr6.5.zip
lsikanalyzer-solr5 ikanalyzer-solr6.5.zip
2.11将IK分词器 JAR 包拷贝到Tomcat8\webapps\solr\WEB-INF\lib下
cp ik-analyzer-solr5-5.x.jar solr-analyzer-ik-5.1.0.jar /opt/Tomcat8/webapps/solr/WEB-INF/lib/
2.12将词典 配置文件拷贝到 Tomcat8\webapps\solr\WEB-INF\classes下
cp ext.dic IKAnalyzer.cfg.xml stopword.dic /opt/Tomcat8/webapps/solr/WEB-INF/classes/
2.13更改在Tomcat8\solr_h\solrhome\new_core\conf找到managed-schema配置文件,末尾添加以下保存
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" useSmart="false"
class="org.wltea.analyzer.lucene.IKAnalyzer" />
<analyzer type="query" useSmart="true"
class="org.wltea.analyzer.lucene.IKAnalyzer" />
</fieldType>
2.14重启tomcat服务,测试
2.15 关闭
直接关闭Tomcat即可
上面都是本人在cent7虚拟机上试过,按照步骤来,就可以了。