基于centos6.5搭建solr服务器

作为java开发主流的几款用以做分词,搜索的插件,solr 相比lucene,具有更好的封装性,功能更强大,使用时候更加高效便捷,本篇将演示如何在linux环境下搭建一个简单的solr程序,安装环境为centos6.5

1.需要的安装包:apache-tomcat-7.0.47.tar.gz、solr-4.10.3.tgz.tgz(jdk自行安装)

2.创建solr文件夹
cd /usr/local
mkdir solr

3.上传tomcat,solr压缩文件,上传完毕,分别解压文件;
tar -zxf apache-tomcat-7.0.47.tar.gz
tar -zxf solr-4.10.3.tgz.tgz

4.为方便管理,创建一个tomcat的文件夹,由于solr的运行是一个类似web的项目,需要依赖tomcat的启动才能访问,
cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r

5.把solr的压缩包上传到服务器后并解压,然后把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。并改名为solr.war
cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war

6.解压war包。启动tomcat自动解压。然后关闭tomcat,删除war包

7.把/root/solr-4.10.3/example/lib/ext 目录下所有的jar包复制到solr工程中,启动需要依赖这些包
cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/

8.创建solrhome文件夹,该文件夹用来存放solr服务器所有配置文件;
将/root/solr-4.10.3/example中的solr文件夹拷贝至solrhome
cp -r solr /usr/local/solr/solrhome
注意,这个solrhome文件夹非常重要,里面保存着今后创建各类分词文件的原始配置文件

9.在solr工程中的web.xml文件中指定solrhome的位置
基于centos6.5搭建solr服务器
在tomcat中进入到此处,修改web.xml文件,主要是将文件的存放位置纸箱solrhome的位置,solrhome的位置可以自己定义;
vi web.xml
基于centos6.5搭建solr服务器

10.启动tomcat
cd /bin
./startup.sh
启动成功,浏览器输入:http://192.168.111.130:8080/solr,IP换成你自己的就行了,看到如下界面,说明启动成功;
基于centos6.5搭建solr服务器

简单说明一下管控台上的几个主要组件,CoreAdmin,这个相当于是一个管理你创建的分词文档的文档库,默认安装完毕后,会有一个collection1,你可以进入到这个文件夹下配置你的业务字段;

11、配置中文分词器;
1).把IK-Analyzer分析器的文件夹上传到服务器
2).把分析器的jar包添加到solr工程中
cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
分词器文件在analise中
3).把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的WEB-INF/classes文件夹中
cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
4).在solrhome/collection1/conf/schema.xml中配置filedType
进入该目录:
cd /usr/local/solr/solrhome/collection1/conf
vi schema.xml
找到添加业务字段的位置,添加你需要的字段,这个里面配置好了以后,在你的程序代码中就可以对应上了,如图:
基于centos6.5搭建solr服务器

具体的字段意义可自行百度,都有详细的讲述;

5)重启tomcat,配置的字段就会生效了;
基于centos6.5搭建solr服务器

在左边的导航栏里,选择collection1,再选择下面的Analysis,右边的FieldType列表里就会显示出你在schema.xml中配置的字段信息;

solr的搭建到此基本就结束了,至于里面的细节和优化的配置,大家可以在此基础上继续深入探讨,比如在管控台上有很多运维的操作,都可以执行百度里面的含义,帮助深化理解solr的功能;

下面说一个在运用中大家可能会遇到的问题
实际开发中,我们并不想使用安装后默认的Core Admin,想自己新建一个文档的仓库进行分词和文档的管理操作,此时需要新建一个Core Admin,并且实际业务中也是存在这样的需求的,例如项目中存在多种类型的文档搜索,都放在collection1下,那么schema.xml将会越来越庞大,以至于维护起来很不方便,好的做法是,在solrhome下添加一个新的core,这个core可以自定义,只要放在该文件夹下即可,命名随意,例如,在solrhome下自己放入了一个core0,

基于centos6.5搭建solr服务器

在conf文件夹下找到schma.xml文件,在这个配置文佳下进行业务字段的添加配置,然后在管控台上创建一个新的Core Admin的时候就可以使用这个core0:
基于centos6.5搭建solr服务器

基于centos6.5搭建solr服务器

这时候可以看到刚刚创建的core0就出现在了Core Selector中了,这个地方容易出的问题就是如果第一次尝试创建一个新的Core Admin的时候,不慎选用了collection1,或者界面自带的其他core,会一直报错显示创建失败,此处切记!!

本篇到此结束,下一篇将演示如何使用java程序操作solr,不足之处,敬请见谅并提出宝贵意见