一.Solr的定义
Solr是一个独立的企业级搜索应用服务器,它是用Java编写、运行在Servlet容器(如Apache Tomcat或Jetty)上的一个独立的全文搜索引擎。它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
二.程序与solr的交互流程图
如上图所示:将solr.war(solr4版本后是solr-webapp下的webapp)包放在tomcat的webapp目录下,此处提供一个solr的可访问界面,程序通过访问tomcat下solr的界面,根据web.xml的映射,定位操纵和调用solr-home,数据库将数据导入到对应的solr-core中。
三.solr的安装
预装:jdk1.8及以上,tomcat8及以上,否则会报错。
-
在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
-
将solrhome放入/usr/local/solrhome目录下:
(1)进入solrhome当前位置:cd /solr-7.7.3/server
,当前server下的solr目录即为solrhome。
(2)将其复制到usr/local下,并将solr改名为solrhome:cp -r solr /usr/local/solrhome
-
拷贝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
-
拷贝日志工具相关jar包:将solr-7.7.3/server/lib/ext下的jar包拷贝至上面Tomcat下solr7的/WEB-INF/lib/目录下:
cp * /usr/local/solr/tomcat7/webapps/solr7/WEB-INF/lib/
-
拷贝metrics相关jar包:将solr-8.0.0/server/lib下metrics相关jar包也拷贝至/WEB-INF/lib/目录下:
cp metrics-* /usr/local/solr/tomcat7/webapps/solr7/WEB-INF/lib/
-
拷贝log4j2配置文件:将solr-8.0.0/server/resource目录中的log4j配置文件拷入web工程目录WEB-INF/classes(自行创建目录):
cp log4j* /usr/local/solr/tomcat7/webapps/solr7/WEB-INF/classes
-
进入/usr/local/solr/tomcat7/webapps/solr7/WEB-INF目录下,修改web.xml文件:
vim web.xml
加入如下配置:
<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访问成功: