zoukankan      html  css  js  c++  java
  • Solr4:配置mmseg4j同义词(已经配置好中文分词)

    前提,已经安装配置好Tomcat7与Solr4,并且配置好mmseg4j中文分词,具体参考Solr4:Tomcat7下面配置Solr以及Solr4:加入中文分词mmseg4j
    1.修改$SOLR_HOME/collection1/conf/schema.xml

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

      <fieldType name="textSimple" class="solr.TextField" >
       <analyzer type="index">
         <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="C:/solr/collection1/conf/mm4jdic"/>
          <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
       </analyzer>
       <analyzer type="query">
         <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="C:/solr/collection1/conf/mm4jdic"/>
          <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
       </analyzer>
      </fieldType>

    2.修改$SOLR_HOME/collection1/conf/synonyms.txt

    在里面加入你认为中同义词的数据,形如:
    手机 => 移动电话
    大陆 => 中国
    需要将此文件存储为UTF-8格式。如果是用UltraEdit编辑,可以在菜单中选择“文件”-》“转换”-》“ASCII到UTF-8”即可。记事本编辑的话,菜单选择“另存为”,编码类型选择UTF-8即可。
    3.所有复杂的同义词(就是还不在词库中的词),应该在自定义词典中有设置

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

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

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

  • 相关阅读:
    安装驱动后链接DB
    将man文件导出为文本的脚本
    mysql中的DELIMITER
    存储过程模版(mysql)
    struts学习总结
    Java 反射和内省实现spring的IOC和DI
    JDK动态代理
    js跨域
    mysql函数
    正则表达式
  • 原文地址:https://www.cnblogs.com/nayitian/p/2866747.html
Copyright © 2011-2022 走看看