solr环境搭建
系统环境:CentOS7.2 + JDK1.8.0_231
开始之前,一直有个疑问--为什么很多帖子都是将solr部署到tomcat中?使用内置的jetty不香?
方案1:使用内置容器jetty启动【强烈推荐】
官网下载 【https://lucene.apache.org/solr/downloads.html】
wget https://www.apache.org/dyn/closer.lua/lucene/solr/8.6.2/solr-8.6.2.tgz
解压
tar -zxvf solr-8.6.2.tgz
启动solr
cd /software/solr-8.6.2
./bin/solr start -force #这里因为使用了root用户进行启动,存在安全风险,需要使用-force 跳过安全检查
Waiting up to 180 seconds to see Solr running on port 8983 [/]
Started Solr server on port 8983 (pid=30842). Happy searching!
##当出现上述内容,则代表solr启动成功
访问solr主页
至此,solr环境搭建完成。
方案2:solr+tomcat启动
前提条件:
1、tomcat8
官网自行下载:https://tomcat.apache.org/download-80.cgi
2、jdk 1.8
拷贝web项目
将solr 源文件中的solr-webapp/webapp下的所有内容拷贝到tomcat webapps目录下,并且重命名为solr
cp -r /software/solr-8.6.2/server/solr-webapp/webapp /software/tomcat/webapps/solr
拷贝依赖的jar
cp -r /software/solr-8.6.2/server/lib/etc/* /software/tomcat/webapps/solr/WEB-INF/lib/ # 拷贝ext扩展开发包
cp -r /software/solr-8.6.2/server/lib/http2-* /software/tomcat/webapps/solr/WEB-INF/lib/ # 拷贝Http2依赖库
cp -r /software/solr-8.6.2/server/lib/metrics-*.* /software/tomcat/webapps/solr/WEB-INF/lib/ #拷贝检索依赖库
cp -r /software/solr-8.6.2/server/lib/etc/* /software/tomcat/webapps/solr/WEB-INF/lib/ #/etc/目录下的所有jar
拷贝日志配置文件
mkdir -p /software/tomcat/webapps/solr/WEB-INF/classes # 创建classes目录
cp -r /software/solr-8.6.2/server/resources/* /software/tomcat/webapps/solr/WEB-INF/classes #拷贝日志配置文件
创建solrhome,复制solr相关源文件
mkdir -p /software/tomcat/webapps/solr/solrhome
cp -r /software/solr-8.6.2/server/solr/* /software/tomcat/webapps/solr/solrhome/
指定solrhome
编辑tomcat conf 目录下的web.xml,找到
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!--这里指定solrhome -->
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/software/tomcat/webapps/solr/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
注释安全认证标签
注意:这里是修改复制到/software/tomcat/webapps/solr/WEB-INF/web.xml,不是tomcat 中conf 目录下的web.xml.刚开始时,弄了半天没有生效,访问地址,还是会出现403
<!-- 将<security-constraint>注释,不然访问的时候,会出现403
<security-constraint>
<web-resource-collection>
<web-resource-name>Disable TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Enable everything but TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method-omission>TRACE</http-method-omission>
</web-resource-collection>
</security-constraint>
-->
tomcat 启动solr
cd /software/tomcat/
./bin/startup.sh && tail -f logs/catalina.out
访问验证
http://localhost:8080/solr/index.html
至此,两种方案都已经搭建好,但是个人强烈建议使用方案1,开箱即用。方案2很多地方一不小心就会出错,步骤繁多,不知道网上很多朋友为啥很多都采用?有知道原因的小伙伴可以分享一下。