Linux环境下在tomcat8容器上部署solr搜索引擎服务器

一.Solr的定义

Solr是一个独立的企业级搜索应用服务器,它是用Java编写、运行在Servlet容器(如Apache Tomcat或Jetty)上的一个独立的全文搜索引擎。它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

二.程序与solr的交互流程图

Linux环境下在tomcat8容器上部署solr搜索引擎服务器
如上图所示:将solr.war(solr4版本后是solr-webapp下的webapp)包放在tomcat的webapp目录下,此处提供一个solr的可访问界面,程序通过访问tomcat下solr的界面,根据web.xml的映射,定位操纵和调用solr-home,数据库将数据导入到对应的solr-core中。

三.solr的安装

预装:jdk1.8及以上,tomcat8及以上,否则会报错。

  1. 在usr/local下单独创建一个solr目录:mkdir solr
    在solr目录下下载solr的压缩包并解压:wget https://mirror.bit.edu.cn/apache/lucene/solr/7.7.3/solr-7.7.3.tgz
    tar -zxvf solr-7.7.3.tgz

  2. 将solrhome放入/usr/local/solrhome目录下:
    (1)进入solrhome当前位置:cd /solr-7.7.3/server,当前server下的solr目录即为solrhome。
    Linux环境下在tomcat8容器上部署solr搜索引擎服务器
    (2)将其复制到usr/local下,并将solr改名为solrhome:
    cp -r solr /usr/local/solrhome

  3. 拷贝web工程:将solr-7.7.3/server/solr-webapp/下的webapp文件夹拷贝到Tomcat的webapps目录下并改成你要用的名字 (在4和更早的版本中会以war包形式存在,需解压war包):cp -r webapp /usr/local/solr/tomcat8/webapps
    改名: mv webapp solr7
    Linux环境下在tomcat8容器上部署solr搜索引擎服务器
    Linux环境下在tomcat8容器上部署solr搜索引擎服务器

  4. 拷贝日志工具相关jar包:将solr-7.7.3/server/lib/ext下的jar包拷贝至上面Tomcat下solr7的/WEB-INF/lib/目录下:
    cp * /usr/local/solr/tomcat7/webapps/solr7/WEB-INF/lib/

  5. 拷贝metrics相关jar包:将solr-8.0.0/server/lib下metrics相关jar包也拷贝至/WEB-INF/lib/目录下:
    cp metrics-* /usr/local/solr/tomcat7/webapps/solr7/WEB-INF/lib/

  6. 拷贝log4j2配置文件:将solr-8.0.0/server/resource目录中的log4j配置文件拷入web工程目录WEB-INF/classes(自行创建目录):
    cp log4j* /usr/local/solr/tomcat7/webapps/solr7/WEB-INF/classes

  7. 进入/usr/local/solr/tomcat7/webapps/solr7/WEB-INF目录下,修改web.xml文件:vim web.xml
    Linux环境下在tomcat8容器上部署solr搜索引擎服务器
    加入如下配置:

<env-entry>
    <env-entry-name>solr/home</env-entry-name>
    <env-entry-value>“你的solrhome位置”</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

注意:要将web.xml中的security-constraint代码全部注释掉,否则会报403错误

四.启动

在浏览器中输入linux地址+tomcat端口号/solr7/index.html访问成功:
Linux环境下在tomcat8容器上部署solr搜索引擎服务器

上一篇:lucene&solr索引流程之分析文档


下一篇:Lucene和Solr和Elasticsearch部分