solr建立中文分词

11年前

背景,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两个字段的中文分词