Solr 3.5:配置mmseg4j同义词(已经配置好中文分词)

前提,已经安装配置好Tomcat8与Solr3.5,并且配置好mmseg4j中文分词

1.修改 conf/schema.xml

在fields节点下面的mmseg4j分词器相关配置修改为类似于如下的内容:

    <fieldType name="textComplex" class="solr.TextField" >
       <analyzer type="index">
         <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
          <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
       </analyzer>
       <analyzer type="query">
         <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
          <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
       </analyzer>
    </fieldType>

2.修改solr/home/conf/synonyms.txt

在里面加入你认为中同义词的数据,形如:
手机 => 移动电话
大陆 => 中国
需要将此文件存储为UTF-8格式。如果是用UltraEdit编辑,可以在菜单中选择“文件”-》“转换”-》“ASCII到UTF-8”即可。记事本编辑的话,菜单选择“另存为”,编码类型选择UTF-8即可

3.所有复杂的同义词(就是还不在词库中的词),应该在自定义词典中有设置

如:“移动电话”这个词应该在mmseg4j的自定义词典中已经配置,否则创建索引的时候根本有没有“移动电话”这个词,查询“手机”的时候,是不可能把“移动电话”查询出来的。mmseg4j自定义词典的路径,按前文的设置是在solr/home/dic/words-my.dic文件中
4.同义词只能出现一次

即如果已经配置了“大陆 => 中国”,那么是不能再配置“中国 => 中华人民共和国”这样的词条的,否则后一条将覆盖前一条的信息。
5.重新启动Tomcat

即可以在查询中使用同义词。比如:查询“大陆”,会将“中国”的信息全部显示出来。

【备注】

    Solr4.2.0+Tomcat9+JDK8+mmseg4j1.9.1

    需要拷贝三个jar包

    155820_VHaN_3424892.png

转载于:https://my.oschina.net/gibbons/blog/1512168

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值