solr建立中文分词
背景,solr 带有一个默认的分词,但是对中文支撑不好 ,比如:你好 自带的话,是拆成 你,和 好 两个字,但是实际对中国人,中文的含义 应该是 你好,因此为了对中文更好的支撑,引用第三方 库支撑 现在第三方库,支撑比较多的,有 庖丁,mmseg4j 等,
我目前使用的是 mmseg4j ,配置方法,入下,很简单
1:首先要下载 mmseg4j 的jar, google一下,很多,将下载下来的jar,解压,里面dist里面有三个mmseg4j jar 拷贝到 solr服务端的web-info 目录下的lib目录下面
2:配置solr-schame.xml
一:配置fieldType 字段类型 ,表示这个字段类型引用那种分词
<fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="textSimple" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
二:有了字段类型,自然,就是 配置字段,字段是某个字段类型,
<field name="picDesc" type="textSimple" indexed="true" stored="true"/>
<field name="picUrl" type="textComplex" indexed="true" stored="true"/>
三:可以配置copyField 也可以不配置
这样,就支撑了 对picDesc,picUrl两个字段的中文分词