Linux安装单机solr

前言:

1 solr是一个severlet,只处理数据

2 tomcat是运行serverlet的环境,也就是个serverlet容器

技术分享

大概就这么个意思吧:一个访问请求过来,会先到达tomcat,然后tomcat将请求变为一个request object,然后solr会用自己的搜索引擎处理好这个请求,返回数据。

3 solr是基于lucene java库的企业级搜索服务器。包含了XML/HTTP, JSON API, 高亮查询结果, faceted search, 缓存, 复制, web管理界面。下面是和lucene的几点区别。

lucene本质是一个搜索库,不是独立的应用程序;solr是独立的应用程序

lucene专注于搜索底层的建设;solr专注于企业应用

lucene不负责职称搜索服务所必须的管理;solr负责


这是主要的安装过程了,首先得感谢下同事shj的帮助,O(∩_∩)O~

另:文中可能有我理解错误的地方,还请不吝指教,谢谢!

操作系统:64位 CentOS 5.5 (同事用的ubuntu也很OK)

1 JDK安装

这个没什么好说的,到官网上下载JDK并装好,并配置好JAVA_HOME、CLASSPATH等。目前我用的是jdk-8u45-linux-x64.tar.gz,安装好后配置的profile信息如下:

# vim /etc/profile
JAVA_HOME=/usr/local/jdk 
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
PATH=$PATH:$JAVA_HOME/bin

2 tomcat安装

官网上下载个最新版本就好,目前最新版本是8.0.21,下面有很多选择,选择一个二进制包Core下面的tar.gz下载。

# tar -zxv -f apache-tomcat-8.0.21.tar.gz -C /usr/local
# mv /usr/local/apache-tomcat-8.0.21 /usr/local/tomcat
# cd /usr/local/tomcat/bin
# chmod +x *.sh

可以将tomcat/bin目录加到环境变量PATH中。

# vim /etc/profile
JAVA_HOME=/usr/local/jdk 
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
TOMCAT_HOME=/usr/local/tomcat
PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/bin

之后可以启动tomcat,看是否已经安装好

# catalina.sh start  // 启动tomcat,后台运行tomcat
# catalina.sh stop   // 停止tomcat
# catalina.sh run    // 启动tomcat,前台运行tomcat,可以直接使用 ctrl + c 终止

// 也可以使用下面的脚本来运行和终止tomcat
# startup.sh        // 启动tomcat
# shutdown.sh       // 停止tomcat

可以使用本地ip:8080或者localhost:8080查看是否已经成功安装好tomcat,如果看到猫了,那么就OK了。

技术分享

如果没有的话,可以到tomcat/logs/catalina.2015-04-28.log或者使用catalina.sh run查看相关的报错信息。

3 solr安装

同样,在官网上找到最新的版本下载一个,目前最新的版本是5.1.0,我下载了solr-5.1.0-src.tgz。把下载好的tgz文件解压:

# tar -zxv -f solr-5.1.0.tgz

解压后找到需要的一个solr.war的包,这个其实就相当于是solr的一个java压缩包,当放到tomcat的webapps下之后运行tomcat就会自动解压出一个同名文件夹,也就是我们要的serverlet,里面有部分依赖包还需要从solr-5.1.0.tgz这个压缩包中得到。

每个版本的war包的放置路径不同,所以可以先找到,然后移到tomcat/webapps下:

# cd /usr/local/src/solr-5.1.0
# find -name *.war
./server/webapps/solr.war
# cp ./server/webapps/solr.war /usr/local/tomcat/webapps/

然后运行一下tomcat,就会在tomcat/webapps路径下看到多了一个solr的文件夹。停止tomcat后,删除solr.war,否则每次启动tomcat都会解压一次这个solr.war。

a. 更改主配置文件

在tomcat/webapps/solr/WEB-INF路径中放置了关于solr这个serverlet的所有配置文件,进入到里面,可以看到主配置文件web.xml,需要配置一下solr/home的路径,这个路径是以后你要使用的索引的路径,可以在指定的路径下创建一个文件夹,专门存放,在此就在/usr/local下创建solr文件夹存放。

# mkdir /usr/local/solr
# cd /usr/local/tomcat/webapps/solr/WEB-INF
# vim web.xml
....
<env-entry>
    <env-entry-name>sold/home</env-entry-name>
    <env-entry-value>/usr/local/solr</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
</env-entry>
....

中间红色粗体的地方就是需要修改的地方,这一段在原来的配置文件中其实就是存在的,只不过是注释掉的。

b. 添加依赖包

有一部分solr依赖的jar包并没有直接在tomcat/webapps/solr/WEB-INF/lib中,需要从solr-5.1.0那个包里面拷贝过来。

# cd /usr/local/src/solr-5.1.0
//ext文件下的都是必要的依赖包
# find -name ext
./server/lib/ext
# ls ./server/lib/ext
jcl-over-slf4j-1.7.7.jar  jul-to-slf4j-1.7.7.jar  log4j-1.2.17.jar  slf4j-api-1.7.7.jar  slf4j-log4j12-1.7.7.jar
# cp ./server/lib/ext/* /usr/local/tomcat/webapps/solr/WEB-INF/lib

在我本机安装完成启动tomcat时,报了一个关于dataimportHandler的错误,所以现在就把dataimport的jar包放到WEB-INF/lib中,这个可能是solr自带的example中使用的

# find -name *dataimport*
# cp dist/solr-dataimporthandler-5.1.0.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/
# cp dist/solr-dataimporthandler-extras-5.1.0.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/

c. 日志

当前使用的solr版本本身并没有在WEB-INF下面提供类存放路径,创建好后,可以添加一个日志配置文件到该路径下:

# cd /usr/local/tomcat/webapps/solr/WEB-INF/ 
# lib  weblogic.xml  web.xml 
# mkdir classes 

然后去solr-5.1.0中找一个名字叫log4j的文件,用的是找到的第一个,放到classes路径下:

# cd /usr/local/src/solr-5.1.0
# find -name *log4j*
# cp server/resources/log4j.properties /usr/local/tomcat/webapps/solr/WEB-INF/classes/

本来是随便找了一个,用的是example中的一个叫log4j.properties的,结果报一个路径相关的错误,打开这个文件,看到最上面两行有配置一个路径信息,改成一个存在的路径应该也是OK吧,没实测。

d. 索引存放

solr搜索引擎所使用的索引文件最好单独放在一个路径下,这个就是在这段第一小节:<a. 更改主配置文件>中配置的solr/home的路径,本例中就是/usr/local/solr。

在solr-5.1.0/example/example-DIH/solr中就有几个Core,在solr中每个索引都是一个core(我理解这就是个称呼而已),每个core下面都会有自己的配置文件(在conf路径下)和一个core.properties。把solr-5.1.0/example/example-DIH/solr下的所有文件都拷贝到/usr/local/solr中。

# cp -r /usr/local/src/solr-5.1.0/example/example-DIH/solr/* /usr/local/solr/

顺便说几句:

conf路径下主要需要配置 schema.xml 和 solrconfig.xml。

schema.xml 里面主要配置索引的各个字段

solrconfig.xml 主要配置各个RequestHandler

 

到此就算完成了单机solr的安装,运行tomcat,然后用浏览器打开 本机ip:8080/solr 或者 localhost:8080:/solr ,就可以看见solr的web界面了:

技术分享

 可以看到左边Core Selector中就是/usr/local/solr那几个Core。


后话:如果你觉得对你有帮助,烦请点点右下角的推荐哟~本姑娘在此表示感谢~O(∩_∩)O谢谢~

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。