环境:Centos7 + jdk1.8 + solr-7.7.2 + tomcat-8.5.43
Centos7下载地址: https://www.jianshu.com/p/a63f47e096e8
jdk1.8下载地址: https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
solr-7.7.2下载地址: http://archive.apache.org/dist/lucene/solr/
tomcat-8.5.43下载地址: http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.43/bin/
第一部分: tomcat中配置solr服务
1. 解压solr-7.7.2进入server/webapps复制webapp文件到tomcat的webapps下并改名字为solr进行访问
2. 添加到tomcat容器内
3. 添加solr依赖的包到solr项目内的WEB-INF/lib文件下
3.1 添加server下的lib/ext下的所有包
3.2 添加server下lib文件夹下的6个依赖包
4. 在usr/local [符合项目规范的任意文件夹] 下创建solrhome文件夹作为索引库的目录
5. 复制solr-7.7.2文件夹下的contrib和dist到solrhome目录下
6. 复制server-7.7.2目录下的solr下的所有文件到solrhome目录下
7. 在solrhome目录下创建启动的核心库起名为new_core [符合项目规范的自定义文件夹]
8. 复制solr-7.7.2下的目录下的server/solr/configsets/_default的conf文件夹到创建好的new_core目录下
9. 日志文件
9.1 在tomcat的solr项目中 [路径 tomcat-8.5.43/webapps/solr/WEB_INF/ ] 新建classes 文件夹
9.2 复制solr-7.7.2/server/resources下的log4j2.xml 到 classes文件夹下
10. 修改tomcat-8.5.43下的solr项目web.xml文件
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/usr/local/solrhome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
11. 注释安全约束
访问时会报出: HTTP Status 403 - Access to the requested resource has been denied,拒绝我们的访问资源请求。
12. 启动tomcat即可, 访问路径:http://127.0.0.1:8080/solr/index.html
注意事项:
1. 为了避免程序上的一些请求和返回的中文乱码问题, 我们需要编辑tomcat的配置文件 server.xml
<Connector port="8080" protocol="HTTP/1.1" useBodyEncodingForURI="true" URIEncoding="UTF-8" connectionTimeout="20000" redirectPort="8443" />
2. 启动tomcat会出如下错误:
2.1 错误内容:
WARN false x:ljf_dev SolrConfig Couldn't add files from /usr/local/solrhome/ljf_dev/../../../../contrib/extraction/lib filtered by .*\.jar to classpath: /usr/local/solrhome/ljf_dev/../../../../contrib/extraction/lib WARN falsex:ljf_dev SolrConfig Couldn't add files from /usr/local/solrhome/ljf_dev/../../../../dist filtered by solr-cell-\d.*\.jar to classpath: /usr/local/solrhome/ljf_dev/../../../../dist
2.2 错误原因:
上面的错误是说加载不到那些jar包 ,上面的这些jar包还在我们解压的文件里面,它肯定是找不到,我们先找到我们这个配置文件,然后修改它寻找的路径。
配置文件是 core 目录下的 conf 里的 solrconfig.xml
我们可以看到默认的配置路径是: 这个路径是solr的安装路径,我们可以更改成绝对路径
<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" /> <lib dir="${solr.install.dir:../../../..}/contrib/clustering/lib/" regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-clustering-\d.*\.jar" /> <lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" /> <lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
2.3 解决办法:
将那些jar包放在一个固定路径,然后更改配置文件里的路径为绝对路径
#备份下配置文件 cp /usr/local/solrhome/new_core/conf/solrconfig.xml /user/local/solrhome/new_core/conf/solrconfig.xml.bak #将依赖文件复制到 tomcat的solr项目下 cp -r /opt/solr-7.7.2/dist/ /opt/tomcat-8.5.43/webapps/solr/ cp -r /opt/solr-7.7.2/contrib/ /opt/tomcat-8.5.43/webapps/solr/ 然后更改配置文件 /usr/local/solrhome/new_core/conf/solrconfig.xml 修改为绝对路径,下面为为修改后的。 <lib dir="/opt/tomcat-8.5.43/webapps/solr/contrib/extraction/lib" regex=".*\.jar" /> <lib dir="/opt/tomcat-8.5.43/webapps/solr/dist/" regex="solr-cell-\d.*\.jar" /> <lib dir="/opt/tomcat-8.5.43/webapps/solr/contrib/clustering/lib/" regex=".*\.jar" /> <lib dir="/opt/tomcat-8.5.43/webapps/solr/dist/" regex="solr-clustering-\d.*\.jar" /> <lib dir="/opt/tomcat-8.5.43/webapps/solr/contrib/langid/lib/" regex=".*\.jar" /> <lib dir="/opt/tomcat-8.5.43/webapps/solr/dist/" regex="solr-langid-\d.*\.jar" /> <lib dir="/opt/tomcat-8.5.43/webapps/solr/contrib/velocity/lib" regex=".*\.jar" /> <lib dir="/opt/tomcat-8.5.43/webapps/solr/dist/" regex="solr-velocity-\d.*\.jar" />
这样重新启动tomcat 就不会再有警告了。
--至此,第一部分solr配置完毕.
文章来源:
https://blog.csdn.net/weixin_44124307/article/details/96362431
来源:https://www.cnblogs.com/autumnYue/p/12503812.html