solr中mmseg4j自定义词库配置

  1. mmseg4j是一个比较流行的中文分词,具体介绍见:http://code.google.com/p/mmseg4j/
  2. schema.xml 配置文件:

<fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" >
         <analyzer>
                 <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="/data/web/search_cores/multicore/dic"/>
                         <filter class="solr.LowerCaseFilterFactory"/>
                         <filter class="com.chenlb.mmseg4j.solr.CutLetterDigitFilterFactory"/>
         </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" dicPath="dic"/>
                         <filter class="solr.LowerCaseFilterFactory"/>
         </analyzer>
    </fieldType>
     

         主要是红色部分(dicPath="/data/web/search_cores/multicore/dic"/>),可以使用相对solr.home的地址,或者绝对地址。经过分析mmseg4j源代码发现,如果不指定就是默认在 CWD/data 目录(程序运行当前目录的data子目录)下找.如果填的是相对地址,则是相对solr.home的路径。当然,最好使用绝对地址,相对的容易出错,不好debug。

  1. resin服务器配置的solr.home:
                            <web-app id="/" document-directory="/data/web/projects/xiaozhao-solr">
                                     <stdout-log path="/data/logs/zhaopin-resin_solr-stdout.log" timestamp="[%H:%M:%S.%s]" rollover-period="1D"/>
                                     <stderr-log path="/data/logs/zhaopin-resin_solr-stderr.log" timestamp="[%H:%M:%S.%s]" rollover-period="1D"/>
                                     <character-encoding>utf-8</character-encoding>
                                     <env-entry>
                                         <env-entry-name>solr/home</env-entry-name>
                                         <env-entry-type>java.lang.String</env-entry-type>
                                         <env-entry-value>/data/web/search_cores/multicore</env-entry-value>
                                    </env-entry>
                            </web-app>
  1.  不加词库效果如下:

           

  1. 自定义词库只要放到/data/web/search_cores/multicore/dic目录下,以words开头,dic结尾,每行一个词即可。如:words-my.dic    

白云山
I
B
M
3
二次修改

         加入自定义词后分词效果如下:

        

从上图可以看出,自定义词库已经生效。

          遗留问题:加入英文字母后,分词效果仍没有,目前只对中文分词生效,英文如果想对单个字母分词,需要进一步分析。有知道的朋友,欢迎留言~

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值