apache solr 安装

来源:互联网 发布:iphone7屏幕录制软件 编辑:程序博客网 时间:2024/05/21 06:35

某个项目中用到了全文搜索引擎apache solr。之前一直是在命令行用java –jar start.jar来启动solr的。这样的方式只能用在开发时。因为一旦关闭终端,solr也就被关闭了。

在网上看到可以用tomcat来部署solr。遂实践之。

1、安装java

# uname –a #查看机器是多少位的。

我的机器是64位的,我下载安装:jdk-6u6-linux-x64.bin

   # sh /home/apps/jdk-6u16-linux-i586-rpm.bin

查看提示信息,按照提示选择。默认会安装在/usr/java目录下,我的安装路径是在/usr/local/jdk1.6.0_19。

   # mv 安装文件夹 jdk #修改文件夹名为jdk。

   # java -version
显示当前JRE版本,如果不是1.6.0_16(默认会安装较低版本1.4),

则有方法一:

删除较低版本的jdk

# rpm -qa | grep java #查看系统安装的jdk
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

# rpm –e java-1.4.2-gcj-compat-1.4.2.0-40jpp.115 –nodeps#删除低版本的jdk。

方法二:

需要修改配置。

在vi /etc/profile文件中加入

export PATH=/usr/local/jdk1.6.0_19/bin:$PATH

将java的路径放在$PATH之前,这样就会优先使用我们新安装的jdk。

2、安装tomcat

从http://tomcat.apache.org/download-60.cgi下载Tomcat 6的安装包apache-tomcat-6.0.20.tar.gz,选择Core:tar.gz (pgp, md5) 进行下载。

安装tomcat是很简单的,将tomcat解压缩到想要安装的目录即可。

在SSH Client中执行:
  # tar zxf apache-tomcat-6.0.20.tar.gz
  # cp -r apache-tomcat-6.0.20 /usr/local/apache-tomcat-6.0.20

  #mv apache-tomcat-6.0.20 tomcat
  # cd /usr/local/tomcat/bin
  # ./startup.sh  #启动Tomcat

现在来看看我的/etc/profile的配置

JAVA_HOME=/usr/local/jdk1.6.0_19
JRE_HOME=/usr/local/jdk1.6.0_19/jre
JAVA_BIN=/usr/local/jdk1.6.0_19/bin
TOMCAT_HOME=/usr/local/tomcat
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME TOMCAT_HOME  CLASSPATH JAVA_BIN JRE_HOME
export PATH=/usr/local/jdk1.6.0_19/bin:$PATH
export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr/example/solr"

3、安装Solr


从http://people.apache.org/builds/lucene/solr/nightly/下载solr的zip包后解压缩,将dist目录下的war文件改名为solr.war直接复制到tomcat的webapps目录即可。

我是直接将项目要用的example目录拷贝下来。

# mkdir –p /opt/solr/example #创建要存放solr的目录

# cp –r example/solr /opt/solr/example #将example下的solr目录(包含目录conf,data等)复制到之前创建的目录中。

# cp example/webapps/solr.war /usr/local/tomcat/webapps #将example中的webapps里的solr.war放在/usr/local/tomcat/webapps中

修改/opt/solr/example/solr/conf/solrconfig.xml文件中的配置data路径的语句,设置solr的data路径为绝对路径

<dataDir>${solr.data.dir:/opt/solr/example/solr/data}</dataDir> #必须设置为绝对路径,否则tomcat找不到。

export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr/example/solr"(这一句配置可以写在profile中)

注意一定要设置solr的主位置。

建立/tomcat安装目录/conf/Catalina/localhost/solr.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/usr/local/tomcat/webapps/solr.war" debug="0" crossContext="true" >
   <Environment name="solr/home" type="java.lang.String" value="/opt/solr/example/solr"override="true" />
</Context>

 

</Context>

变量1:Context docBase=solr.war的目录,必须是solr.war的绝对路径。如我是放在tomcat的webapps里,所以其绝对路径为"/usr/local/tomcat/webapps/solr.war" 。

变量2:Environment name="solr/home"必须这么写,可能solr默认为solr的home目录(记住必须这么写)。

变量3:Environment  value="/opt/solr/example/solr" 值,是solr目录,就是包括bin,conf等目录,一定要有.

观察这个指定的solr主位置,里面存在两个文件夹:conf和data.

其中conf里存放了对solr而言最为重要的两个配置文件schema.xml和solrconfig.xml。data则用于存放索引文件。

schema.xml主要包括types、fields和其他的一些缺省设置。

solrconfig.xml用来配置Solr的一些系统属性,例如与索引和查询处理有关的一些常见的配置选项,以及缓存、扩展等等。

tomcat默认是监听8080端口。若想让其监听solr默认的端口8943,可以这样设置

修改/usr/local/tomcat/conf目录中的server.xml文件。

查看8080,将其修改为8943.如下所示:

<Connector port="8983" maxHttpHeaderSize="8192"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" redirectPort="8443" acceptCount="100"
              connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>

#注意最好设置为URIEncoding="UTF-8"否则可能检索中文会出现问题。

至此,solr正确的部署在里tomcat中。可以浏览器输入http://192.168.10.109:8983/solr/可以看到如下画面