前言:
Solr是采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎
Lucene是apache软件基金会的一个子项目,是一个全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构。Lucene的目的是为软件开发人员提供一个简单易用的工具包
Solr是一个搜索服务器,是一个程序,Lucene是一个工具包,是一个库
Solr是使用了Lucene进行开发扩展的一个服务器程序
Solr与Elasticsearch类似,这两者都是基于Lucene开发的
教程分为两部分,一个直接启动solr,第二个使用tomcat启动solr
我推荐大家使用第一种,因为官方推荐
第一种方式:直接使用solr启动
1.下载solr7.6.0 官网地址:http://mirror.bit.edu.cn/apache/lucene/solr/7.6.0/
2.拷贝到linux后解压,我是放在了/usr/local/目录下
tar -zxvf solr-7.6.0.tgz
3.进入/usr/local/solr-7.6.0/bin 目录下,启动solr
./solr start -force //启动
PS:solr的重启和停止
./solr stop //停止
./solr restart //重启
4.添加环境变量
将solr添加到环境变量,可以快速的启动、重启、关闭等
编辑文件:
vim /etc/profile
添加如下内容:
# solr environment
export SOLR_INSTALL_HOME=/usr/local/solr-7.6.0
export PATH=$SOLR_INSTALL_HOME/bin:$PATH\
如下图:
然后执行source命令,使之生效
source /etc/profile
5.开启阿里云的8983端口
6.访问http://ip:8983,会出现solr主界面
第二种方式:使用tomcat启动solr
这种方式比较繁琐复杂,因为也手动操作了一遍,所以记录下过程
环境:
Centos7 、Solr7.6.0
准备工作:
需要事先安装jdk、tomcat
安装步骤:
1.下载solr7.6.0 官网地址:http://mirror.bit.edu.cn/apache/lucene/solr/7.6.0/
2.拷贝到linux后解压
tar -zxvf solr-7.6.0.tgz
3.把solr-7.6.0/server/solr-webapp里面的webapp拷贝到tomcat 的webapps下,重命名为solr
cd solr-7.6.0/server/solr-webapp
cp -r webapp/ /usr/local/tomcat/webapps/
cd /usr/local/tomcat/webapps/
mv webapp solr
4.拷贝solr-7.6.0\server\lib\ext 下的jar包以及lib目录下gmetric4j-1.0.7.jar,以metrics开头的jar包拷贝到 tomcat\webapps\solr 项目的WEB-INF\lib下
cd solr-7.6.0/server/lib/ext/
cp * /usr/local/tomcat/webapps/solr/WEB-INF/lib/
cd ..
cp gmetric4j-1.0.7.jar metrics-* /usr/local/tomcat/webapps/solr/WEB-INF/lib/
5.拷贝solr-7.6.0\server 下的solr文件夹到其它非中文目录下,重命名为solrhome,我是放在了usr/local/solrhome下
cd /solr-7.6.0/server
cp -r solr /usr/local/solrhome
6.修改/usr/local/tomcat/webapps/solr/WEB-INF/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>
7.在WEB-INF下新建一个classes目录,并复制solr-7.6.0/server/resources下的jetty-logging.properties,log4j2.xml 到 classes 文件夹下
mkdir /usr/local/tomcat-solr/webapps/solr/WEB-INF/classes
cp jetty-logging.properties log4j2.xml /usr/local/tomcat/webapps/solr/WEB-INF/classes/
8. 启动tomcat
./tomcat/bin/startup.sh
9.开启阿里云的8080端口,访问url
http://121.74.256.44:8080/solr/index.html#/
报错403:
要修改下/usr/local/tomcat/webapps/solr/WEB-INF/web.xml
注释下面这段内容:
<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>
10.再次重启tomcat,并访问url
成功!
总结:
其实tomcat安装solr服务就干了4件事:
1.下载解压solr包
2.把solr对应的一些文件拷贝到tomcat/webapps下
3.修改solr工程中的web.xml,配置slorhome的所在位置(slorhome其实就是个solr存放索引的文件夹)
4,启动tomcat