前言:

Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

Solr可以独立运行,运行在Jetty、Tom猫等这些容器中,Solr索引的实现方法很简单,用POST方法向Solr服务器发送一个描述Field及其内容的XML文档,Solr根据xml文档添加、删除、更新索引。Solr搜索只需发送HTTP POST请求,然后对Solr返回Xml、json等格式的查询结果进行解析,组织页面布局即可。

Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。


Ubuntu版本:

  • No LSB modules are available.
  • Distributor ID:Ubuntu
  • Description:Ubuntu 16.04.3 LTS
  • Release:16.04
  • Codename:xenial


准备工具:


一、 JDK 安装与配置

Solr的版本6.0.0以上的都要求jdk8.0及以上。

Solr各版本发布时间、对应的JDK版本、Jetty版本(http://blog.csdn.net/jiangchao858/article/details/52443745#t2)

##################################

在说明搭建环境之前,其实solr5.0之后 solr已经内置jetty服务器,可以自行启动。但是为了加入自己的特性,

以及在solr基础之上的应用,此文章主要针对发布在tomcat8上。

##################################


1.jdk安装

tar -zxvf   jdk-8u151-linux-i586.tar.gz
cp -rf jdk1.8.0_151 /usr/local/

2.配置

gedit /etc/profile

在后面加入

JAVA_HOME=/usr/local/jdk1.8.0_151
JRE_HOME=/usr/local/jdk1.8.0_151/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH



3.使修改生效:

source /etc/profile   //使修改立即生效 
echo $PATH   //查看PATH值


4.查看JAVA版本

java -version

至此,JDK安装成功。


二、Solr安装与配置:

1、解压apache-tomcat-8.5.24.tar.gz和solr-7.2.0.tgz

tar -zxvf apache-tomcat-8.5.24.tar.gz 
tar -zxvf solr-7.2.0.tgz

2.配置tomcat

    (1)将apache-tomcat-8.5.24搬移到指定路径(任意路径

mv -f apache-tomcat-8.5.24/ /usr/local/tomcat

(2)把 solr-7.2.0\server\solr-webapp下的 webapp 文件夹拷贝到tomcat 的webapps下,重命名 为solr(也可以是其他名字)

mv -f webapp/ /usr/local/tomcat/webapps/solr


(3)拷贝jar包全部复制到 Tomcat\ webapps\solr\WEB-INF\lib 目录中;

(注:如果地址错误或者jar不全的话,会出现404错误)

  • solr-7.2.0/server/lib/ext目录下的jar包
  • solr-7.2.0/server/lib  目录下gmetric4j-1.0.7.jar
  • solr-7.2.0/server/lib  目录下metrics开头的jar
  • solr-7.2.0/dist/solr-dataimporthandler-* 开头的jar





(4)拷贝solr-7.2.0\server\solr文件夹的所有文件,复制到solrhome(在tomcat目录下建立solrhome目录,也可以放在其它目录中

mv -f solr /usr/local/tomcat/solrhome/




(5)修改/usr/local/tomcat/webapps/solr/WEB-INF/web.xml, 找到如下代码,去掉注释,将/put/your/solr/home/here 改为你自己的solrhome的路径(/usr/local/tomcat/solrhome)

 <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/tomcat/solrhome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

(6)修改/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>
-->



(7)在/usr/local/tomcat/solrhome 新建 logs文件夹


(8)在/usr/local/tomcat/webapps/solr/WEB-INF 新建classes文件夹

(9)拷贝solr7.2.0\server\resources下的log4j.properties到tomcat\webapps\solr\WEB-INF\classes,修改solr.log=/usr/local/tomcat/solrhome/logs(第7步路径)

cp -rf log4j.properties /usr/local/tomcat/webapps/solr/WEB-INF/classes
cd /usr/local/tomcat/webapps/solr/WEB-INF/classes
gedit log4j.properties



(10)编辑文件 /usr/local/tomcat/bin/catalina.sh (根据你自己的jdk路径进行修改) 

JAVA_HOME=/usr/local/jdk1.8.0_151
JRE_HOME=/usr/local/jdk1.8.0_151/jre



(注:如果不修改,启动tomcat时报如下的错

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

至此solr的配置工作完成.


3.启动tomcat、solr

1.启动执行tomcat,在/usr/local/tomcat/bin运行startup.sh

./startup.sh


打开浏览器,输入http://localhost:8080/  (出现以下图像tomcat运行正常)



出现的问题:

(1)如果端口占用,则修改端口文件/usr/local/tomcat/conf中的server.xml文件


<Serverport="18005" shutdown="SHUTDOWN">


还有connnector端口,顺便把编码格式给改了:

<Connectorport="18080" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="18443"URIEncoding="UTF-8"/>


下面还有一个:

<Connector port="18009" protocol="AJP/1.3" redirectPort="18443" />


开端口:

sudo firewall-cmd --zone=public --add-port=18080/tcp --permanent 

如果不使用“--permanent”标记,把么防火墙规则在重启后会失效。


(2)访问tomcat出现java.lang.IllegalStateException No output folder错误解决方法

关于这个原因主要是权限的问题,在tomcat/work/Catalina/localhost/,主要是这个目录没有被读写的权限,导致文件不能被编译到该指定的工作目录中,此时我们就要针对与这个目录做一些权限的修改权限至少要达到755或者以上,同时注意此处修改权限必须用root身份进行操作,否则不能进行修改,修改完后编译好的jsp文件就在localhost的目录当中了。

chmod +777 /usr/local/tomcat/work/Catalina/localhost


2.运行Solr

在浏览器输入 http://localhost:8080/solr/index.html#/ 即可出现Solr的管理界面 

看到管理页面说明安装成功



关闭solr只需要关闭tomcat即可:

./shutdown.sh



至此solr的安装完毕。



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐