前言:
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谢谢~