solr本身对中文分词的处理不是太好,所以中文应用很多时候都需要额外加一个中文分词器对中文进行分词处理,ik-analyzer就是其中一个不错的中文分词器。
一、版本信息
solr版本:4.7.0
需要ik-analyzer版本:IK Analyzer 2012FF_hf1
ik-analyzer下载地址:http://code.google.com/p/ik-analyzer/downloads/list
二、配置步骤
下载压缩解压后得到如下目录结构的文件夹:
我们把IKAnalyzer2012FF_u1.jar拷贝到solr服务的solr\WEB-INF\lib下面。
我们把IKAnalyzer.cfg.xml、stopword.dic拷贝到需要使用分词器的core的conf下面,和core的schema.xml文件一个目录。
修改core的schema.xml,在<types></types>配置项间加一段如下配置:
<fieldType name="text_ik" class="solr.TextField"> <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType>我们就多了一种text_ik的field类型了,该类型使用的分词器就是 ik-analyzer。
我们在这个core的schema.xml里面配置field类型的时候就可以使用text_ik了。
<field name="name" type="text_ik" indexed="true" stored="true" multiValued="false" />
三、中文分词测试
IKT text raw_bytes start end type position 中华人民共和国 [e4 b8 ad e5 8d 8e e4 ba ba e6 b0 91 e5 85 b1 e5 92 8c e5 9b bd] 0 7 CN_WORD 1 中华人民 [e4 b8 ad e5 8d 8e e4 ba ba e6 b0 91] 0 4 CN_WORD 2 中华 [e4 b8 ad e5 8d 8e] 0 2 CN_WORD 3 华人 [e5 8d 8e e4 ba ba] 1 3 CN_WORD 4 人民共和国 [e4 ba ba e6 b0 91 e5 85 b1 e5 92 8c e5 9b bd] 2 7 CN_WORD 5 人民 [e4 ba ba e6 b0 91] 2 4 CN_WORD 6 共和国 [e5 85 b1 e5 92 8c e5 9b bd] 4 7 CN_WORD 7 共和 [e5 85 b1 e5 92 8c] 4 6 CN_WORD 8 国 [e5 9b bd] 6 7 CN_CHAR 9