您的位置:首页 > 其它

Solr4.9.1 安装部署平台搭建

2015-05-31 14:57 211 查看
运行环境:

运行系统:windows7(这里以windows7做实例,windows、Linux等系统下的搭建大同小异)

运行容器:apache-tomcat-7.0.47-windows-x64

Solr版本:solr-4.9.1

一、solr安装部署

1. F盘下新建winsolr文件夹,将下载的Tomcat压缩包考进winsolr,(若能保证此Tomcat端口与本机其他Tomcat端口不冲突则不需改端口)解压后修改tomcat\conf下的server.xml文件将Server port=“”端口改为:7005

protocol="HTTP/1.1" 的port改为:7080

2、将下载的 solr-4.9.1.zip 解压 ,将solr-4.9.1\dist\solr-4.9.1.war文件复制到tomcat的webapps目录下,并将文件命名为solr.war

3、修改tomcat\conf下的server.xml文件,增加URIEncoding="UTF-8" 中文支持。

<span style="white-space:pre">	</span><Connector port="7080" protocol="HTTP/1.1"  connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />

4、配置solr/home(三种方式)

方式一:基于JNDI的方式

1).F:\winsolr下新建solr_home文件夹

2).复制solr-4.3.1\example下的solr文件夹到F:\winsolr\solr_home里。注:该目录为solr的应用环境目录。

3).在F:\winsolr\solr_home\solr\collection1下新建data目录

4).修改F:\winsolr\solr_home\solr\collection1\conf里的solrconfig.xml文件中的dataDir一行内容为:

<span style="white-space:pre">		</span><dataDir>${solr.data.dir:F:\winsolr\solr_home\solr\collection1\data}</dataDir>
<span style="white-space:pre">		<em>注:目的是为了指定存放索引数据的路径。(F:\winsolr\solr_home\solr\collection1\data 这个 data 目录需要自己创建 也可以任意指定路径)。在4.3.1<span style="white-space:pre">		</span>版本中 solr下面没有了 conf文件 多了一个 collection1,在solr.xml配置文件中</em></span>
5).新建tomcat\conf\Catalina\localhost目录 在此目录下新建solr.xml文件,文件中增加

<span style="white-space:pre">		</span><?xml version="1.0" encoding="UTF-8"?>

<span style="white-space:pre">		</span><Context docBase="F:\winsolr\apache-tomcat-7.0.37\webapps\solr.war" debug="0" crossContext="true">

<span style="white-space:pre">		</span> <Environment name="solr/home" type="java.lang.String" value="F:\winsolr\solr_home\solr" override="true"/>

<span style="white-space:pre">		</span></Context>

注:其中docBase为tomcat的webapps下的solr.war完整路径。Environment的value属性的值为存放solr索引的文件夹。

6).将 solr-4.3.1\example\lib\ext下的所有jar文件复制到tomcat\lib下重启tomcat

方式二:基于当前路径的方式

这种情况需要在F:\winsolr\solr_home\目录下去启动tomcat,Solr查找./solr,因此在启动时候需要切换到F:\winsolr\solr_home\

方式三:基于环境变量的方式

windows在环境变量中建立solr.home,值为F:\winsolr\solr_home\ linux在当前用户的环境变量中(.bash_profile)或在catalina.sh中添加如下环境变量export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=F:\winsolr\solr_home\solr"

二、安装中文分词

实现三种中文分词器的安装,包括:smartcn 分词器、IK 分词器

A:IK 分词器安装

1.将之前解压的solr-4.3.1 下的contrib和dist 文件夹复制到F:\winsolr\solr_home\solr\collection1下

2.将下载的IKAnalyzer的发行包解压,解压后将IKAnalyzer2012FF_u1.jar(分词器jar包)复制到F:\winsolr\solr_home\solr\collection1\contrib\analysis-extras\lib下

3.在F:\winsolr\apache-tomcat-7.0.37\webapps\solr\WEB-INF下新建classes文件夹

4.将IKAnalyzer解压出来的IKAnalyzer.cfg.xml(分词器配置文件)和 Stopword.dic(分词器停词字典,可自定义添加内容)复制到 F:\winsolr\apache-tomcat-7.0.37\webapps\solr\WEB-INF\classes中

5.在F:\winsolr\solr_home\solr\collection1\conf下的schema.xml文件中fieldType name="text_general"这个地方的上方添加以下内容

<span style="white-space:pre">	</span><!--配置IK分词器-->
<span style="white-space:pre">	</span><fieldType name="text_ik" class="solr.TextField">
<span style="white-space:pre">	</span> <!--索引时候的分词器-->
<span style="white-space:pre">	</span> <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<!-- 查询时候的分词器 -->
<span style="white-space:pre">	</span> <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>

<span style="white-space:pre">	</span></fieldType>


并将<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>中的type值改为text_ik

6.修改F:\winsolr\solr_home\solr\collection1\conf下的solrconfig.xml文件,指定jar包路径 ,将

<span style="white-space:pre">	</span><lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
<span style="white-space:pre">	</span><lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />

<span style="white-space:pre">	</span><lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
<span style="white-space:pre">	</span><lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />

<span style="white-space:pre">	</span><lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
<span style="white-space:pre">	</span><lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />

<span style="white-space:pre">	</span><lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
<span style="white-space:pre">	</span><lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />

改为:
<span style="white-space:pre">	</span><lib dir="F:\winsolr\solr_home\solr\collection1\contrib\analysis-extras\lib" regex=".*\.jar" />

<span style="white-space:pre">	</span><lib dir="F:\winsolr\solr_home\solr\collection1\contrib\extraction\lib" regex=".*\.jar" />
<span style="white-space:pre">	</span><lib dir="F:\winsolr\solr_home\solr\collection1\dist\" regex="solr-cell-\d.*\.jar" />

<span style="white-space:pre">	</span><lib dir="F:\winsolr\solr_home\solr\collection1\contrib\clustering\lib\" regex=".*\.jar" />
<span style="white-space:pre">	</span><lib dir="F:\winsolr\solr_home\solr\collection1\dist\" regex="solr-clustering-\d.*\.jar" />

<span style="white-space:pre">	</span><lib dir="F:\winsolr\solr_home\solr\collection1\contrib\langid\lib\" regex=".*\.jar" />
<span style="white-space:pre">	</span><lib dir="F:\winsolr\solr_home\solr\collection1\dist\" regex="solr-langid-\d.*\.jar" />

<span style="white-space:pre">	</span><lib dir="F:\winsolr\solr_home\solr\collection1\contrib\velocity\lib" regex=".*\.jar" />
<span style="white-space:pre">	</span><lib dir="F:\winsolr\solr_home\solr\collection1\dist\" regex="solr-velocity-\d.*\.jar" />


首先启动solr服务,启动过程中如果出错,一般有三个原因:

一是配置的分词器jar找不到,也就是你没有复制jar包到\solr\contrib\analysis-extras\lib目前下;

二是solrconfig.xml文件指定的jar路径有误。

三是分词器版本不对导致的分词器接口API不一样出的错,要是这个错的话就在检查分词器的相关文档,看一下支持的版本是否一样.

如果在启动过程中没有报错的话说明配置成功了.

接下来我们重启Tomcat,进入到http://localhost:7080/solr地址进行测试一下刚加入的中文分词器.

在首页的Core Selector中选择你配置的Croe后点击下面的Analysis,

在Field Value (Index)里输入:中国人

在Analyse Fieldname / FieldType:里选择text,然后点击右面Analyse Values

如果分出 中国人 中国 国人 这三个词 说明IK 分词器安装成功!

C: smartcn 分词器安装(smartcn的分词准确率不错,但就是不能自己定义新的词库)

1.
将之前解压的solr-4.3.1下contrib\analysis-extras\lucene-libs中的lucene-analyzers-smartcn-4.3.1.jar包复制到F:\winsolr\solr_home\solr\collection1\contrib\analysis-extras\lib中

2. 修改schema.xml文件,在fieldType name="text_general"这个地方的上方添加以下内容

<fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="0">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>
<filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>
<filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>
</analyzer>
</fieldType>

如果要引用,同IK配置一样,将field标签中的 type值改为text_smartcn即可

3. 修改solrconfig.xml文件(和IK配置同样)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: