首页 > 代码库 > 全文检索引擎Solr的配置

全文检索引擎Solr的配置

描述:

         在Linux环境下实现高速的全文检索

一、当前环境:

           CentOS (Linux) 6.3 64 bit

二、所需软件

1、Java的JDK

2、Solr最新稳定版Solr-4.5

3、Tomcat最新稳定版Tomcat-7.0.42

4、IK Analyzer最新稳定版分词器IKAnalyzer2012

 

三、Tomcat安装

1、  安装jdk

yum -y install java-1.6.0-openjdk java-1.6.0-openjdk-devel

        

2、  下载Tomcat

http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.42/bin/apache-tomcat-7.0.42.tar.gz

(如果找不到请到http://mirror.bit.edu.cn/ 官网点击”apache”进入选择相应版本下载)

        

3、解压tomcat并且放到指定目录下

#tar zxvf apache-tomcat-7.0.42.tar.gz

#mv apache-tomcat-7.0.42/ /usr/local/tomcat

        

4、删除tomcat下无用的文件,避免安全问题

#cd /usr/local/tomcat/webapps/

#rm -rf *

(如果想测试是否安装成功,那么就新建一个ROOT

目录,在下面放一个index.html文件进行测试)

        

5、启动tomcat

#/usr/local/tomcat/bin/startup.sh

        

四、Solr配置

1、  下载Solr

http://apache.fayea.com/apache-mirror/lucene/solr/4.5.0/solr-4.5.0.tgz

2、  解压并且配置Solr

#tar zxvf solr-4.5.0.tgz#mkdir /home/solr# cd solr-4.5.0/#cp -r -p dist/ /home/solr/#cd solr-4.5.0/example#cp webapps/solr.war /usr/local/tomcat/webapps/#cd multicore/#rm -rf exampledocs/ README.txt #cp –rp * /home/solr/  #cd ../   #cd lib/   #cp * /usr/local/tomcat/lib/  (这里需要注意的是ext这个目录必须要把里面的文件单独拿到tomcat的lib下)  #cp –r –p logs/ /home/solr/

3、在:/usr/local/tomcat/conf/Catalina/localhost/下新建solr.xml文件,内容如下:

<ContextdocBase="/usr/local/tomcat/webapps/solr.war" debug="0"privileged="true" allowLinking="true"crossContext="true"><Environmentname="solr/home" type="java.lang.String"value="/home/solr" override="true"></Environment></Context>

        

4、重启tomcat,重启之后/usr/local/tomcat/webapps/ 就会多出一个solr的目录,

                   修改solr目录下的web.xml

                  将里面的内容安装当前的配置修改,修改后如下:

                           

 <env-entry>        <env-entry-name>solr/home</env-entry-name>        <env-entry-value>/home/solr</env-entry-value>        <env-entry-type>java.lang.String</env-entry-type>  </env-entry>

         到这里基本上Solr和Tomcat结合已经完成了,那么下面配置分词。

 

五、配置IK Analyzer中文分词器

这里说下分词器:

         常用的开源分词器有庖丁、MMseg4j,另外还有IKAnalyzer。之前在项目中一直MMseg4j,它有个缺点就是自定义词库的时候比较麻烦。三个中选IK Analyzer是因为它自定义词库简单以及效率非常卓越。

 

1、  下载分词器

https://code.google.com/p/ik-analyzer/downloads/list

这里选择的是  IKAnalyzer2012_u1.zip (因为比这个版本新的其他的几款在测试的时候都出现问题)

        

2、  解压并且放置到所需位置

#unzip IKAnalyzer2012_u1.zip

解压之后里面只有三个文件  一个jar 一个stopword.dic还有一个配置文件IKAnalyzer.cfg.xml

 

a、  将jar放置到tomcat下的solr的WEB-INF下的lib中

#cp IKAnalyzer2012FF_u1.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/

                  

b、  在tomcat下的solr的WEB-INF下创建一个目录classes

然后将stopword.dic及配置文件IKAnalyzer.cfg.xml

 

c、  修改Solr中core下的配置文件schema.xml需要指定所需分词的字段,例如:

<fieldTypename="text_ik" class="solr.TextField">       <analyzer type="index"isMaxWordLength="false"class="org.wltea.analyzer.lucene.IKAnalyzer"/>       <analyzer type="query"isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   </fieldType>

 

这里需要注意的是:这段代码需要在<types></types> 之间添加,还有就是name=”text_ik”指定的类型需要是下面的field中所有的(具体可以搜索下”solr schema.xml”配置详解)

 注:在需要使用中文索引的字段上加上type="text_ik"

参考:http://www.cnblogs.com/likehua/archive/2012/12/26/2834650.html

截图:

 

技术分享

 

 

d、  重启Tomcat并且进行测试

我这里以core0为例子,(在实际生产环境中,每个core都需要修改配置文件进行上述的配置的)

 

技术分享

         

 

六、自定义词库(添加词、去掉排除词)

在实际生产环境中,可能会需要添加一些特定的行业词,IKAnalyzer的配置文件可以很好的解决这个问题。

    

1、  添加行业词

 

技术分享

 

 

打开IKAnalyzer.cfg.xml    然后会看到配置文件写的很清楚,只要安装stopword.dic的格式自定义一个名字,例如xxx.dic  放在当前的同一级目录下,并且在配置文件IKAnalyzer.cfg.xml中指定可以访问到即可了。(这里需要注意的是词库文件编码格式必须为UTF-8无BOM头)

例如我自定义了一个叫:yanglei.dic的,里面写了一个词:杨磊,那么分词结果出来的就完全不一样了

                   (下面是未配置自定义添加词前的分词结果)

         

技术分享

 

                            (配置自定义添加词后的分词结果)

 

技术分享

 

2、  添加排除词

这个就简单了,直接编辑stopword.dic  接着之前的排除词添加就可以了

        

 参考:

Solr core配置文件(schema.xml、solrconfig.xml)配置项说明参考网址如下:

http://www.blogjava.net/conans/articles/379545.html

http://www.cnblogs.com/chenying99/archive/2012/04/19/2457195.html

http://www.360doc.com/content/12/1122/10/11098634_249482489.shtml

全文检索引擎Solr的配置