您的位置:首页 > 其它

Solr4.6 的部署配置

2014-12-11 08:59 169 查看
Solr总结性的说,这是一个对lucene进行完全封装(从前台到后台)的项目,项目中如果需要使用搜索功能,经过配置之后项目就可以直接通过solr提供的搜索api进行搜索功能的应用,而无需开发人员再针对数据进行索引、分词的处理。
下载Solr并解压:http://lucene.apache.org/

创建SolrHome:

E盘下创建SolrHome目录,将solr解压后目录example中的multicore拷贝到SolrHome目录,将dist下的solr-4.6.0.war拷贝到SolrHome目录。

配置SolrHome的信息:

在Tomcat的目录conf\Catalina\localhost(如果不存在,请先运行一下tomcat就会自动生成)下,创建solr.xml信息如下:

<?xml version="1.0" encoding="UTF-8"?><Context docBase="E:/SolrHome/solr.war" debug="0" crossContext="true" >   <Environment name="solr/home" type="java.lang.String" value="E:/SolrHome/multicore" override="true" /> </Context>

配置solr运行支持包:
将solr解压后目录solr-4.6.0\dist\solrj-lib中的相关文件,拷贝之tomcat的lib目录。
jcl-over-slf4j-1.6.6.jar

jul-to-slf4j-1.6.6.jar

log4j-1.2.16.jar

slf4j-api-1.6.6.jar

slf4j-log4j12-1.6.6.jar

启动tomcat,访问http://localhost:8080/solr,就可进入solr的相关配置及运行信息界面。
配置Solr的中文分词技术:

solr的默认分词是按照英语进行分词,即按照空格进行分词,该分词算法不适用与中文,会导致大量的冗余索引。

solr的第三方中文分词

paoding :Lucene中文分词“庖丁解牛” Paoding Analysis
imdict :imdict智能词典所采用的智能中文分词程序
mmseg4j : 用 Chih-Hao Tsai 的 MMSeg 算法 实现的中文分词器
iIKAnalyzer :采用了特有的“正向迭代最细粒度切分算法“,多子处理器分析模式lucene-analyzers-smartcn :Solr官方提供的中文分词,有点与新版本同步发行,缺点相对中文化略差

将solr解压后目录solr-4.6.0\contrib\analysis-extras\lucene-libs中的lucene-analyzers-smartcn-4.6.0.jar文件,拷贝之tomcat的项目运行webapps\solr\WEB-INF\lib目录。

配置Solr的注册分词器:

进入<Environment name="solr/home" type="java.lang.String" value="E:/SolrHome/multicore" override="true" /> 

目录中,将conf/schema.xml中:

Types标签中加入以下:

<fieldType name="text_smart" class="solr.TextField" positionIncrementGap="100">      <analyzer type="index">       <!-- 此处需要配置主要的分词类 -->        <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>		<!--          <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />		<filter class="solr.LowerCaseFilterFactory"/> 		-->        <!-- in this example, we will only use synonyms at query time        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>      -->        		<filter class="solr.SmartChineseWordTokenFilterFactory"/>		        </analyzer>      <analyzer type="query">      <!-- 此处配置同上 -->        <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>			<!--         <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>        <filter class="solr.LowerCaseFilterFactory"/>		-->		<filter class="solr.SmartChineseWordTokenFilterFactory"/>		       </analyzer>    </fieldType>

<fields>标签下加入以下:

<field name="sma" type="text_smart" indexed="true" stored="true" multiValued="true"/>

修改默认分词器:

<defaultSearchField>sma</defaultSearchField>

验证中文分词效果:
访问:localhost:8080/solr
选择菜单:Core Admin-->Core Selector-->Core0-->Analysis
Field Value (Index)中输入对应中文,然后进行分词解析

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: