zoukankan      html  css  js  c++  java
  • Solr4:加入中文分词IKAnalyzer2012 FF

    前提是已经在Tomcat7下面配置好Solr4.0,详情参考:Solr4:Tomcat7下面配置Solr

    注意:Solr4.0需要IKanalyzer 2012 FF以上版本。
    1.下载IKAnalyzer包
    下载地址:http://code.google.com/p/ik-analyzer/downloads/list
    2.解压IK Analyzer 2012FF_hf1.zip包
    用到其中三个文件:
    IKAnalyzer2012FF_u1.jar,放到$CATALINA_HOME/webapps/solr/WEB-INF/lib/目录下
    IKAnalyzer.cfg.xml,stopword.dic,放到$CATALINA_HOME/webapps/solr/WEB-INF/classes/目录下
    3.设置IKAnalyzer中文分词
    修改$SOLR_HOME/collection1/conf/schema.xml文件,在<types></types>中增加如下内容:

    <fieldType name="text_ik" class="solr.TextField"> 
    
        <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/> 
        <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/> 
    
      </fieldType>          

    查询采用IK自己的最大分词法,索引则采用它的细粒度分词法,各自配置了isMaxWordLength属性。
    修改$SOLR_HOME/collection1/conf/schema.xml文件,在<fields></fields>中修改如下内容:

      <field name="content" type="text_ik" indexed="false" stored="true" multiValued="true"/>
      <field name="text" type="text_ik" indexed="true" stored="false" multiValued="true"/>
      ......
      <copyField source="content" dest="text"/>

    也可以自己增加删除相关字段。
    4.重建索引,查询即可
    具体过程参考上一篇文章。或者是通过http://localhost:8080/solr/#/collection1/analysis,然后在Analyse Fieldname / FieldType:下拉选择框中选择"text_ik",关闭Verbose Output核选框,在Field Value (Index)Field Value (Query)中输入中文句子,点击"Analyse Values"即可以看到分词结果。

    顺便也贴下SmartChineseAnalyzer的配置
    1.拷贝~/solr/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-4.0.0.jar$CATALINA_HOME/webapps/solr/WEB-INF/lib/目录下
    2.拷贝上述包中的stopwords.txt$SOLR_HOME/collection1/conf/lang/stopwords_zh-cn.txt
    3.修改$SOLR_HOME/collection1/conf/schema.xml文件,在<type></types>中增加如下内容:

     <fieldType name="text_zh-cn" class="solr.TextField" positionIncrementGap="100">
       <analyzer>
        <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>
        <filter class="solr.SmartChineseWordTokenFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.PositionFilterFactory" />
        <filter class="solr.StopFilterFactory" ignoreCase="false" words="lang/stopwords_zh-cn.txt" enablePositionIncrements="true"/>
       </analyzer>
      </fieldType>

    4.其它省略
       
    也可以比较IKAnalyzer与Lucene自带的SmartChineseSentenceTokenizerFactory的差别,可以通过http://localhost:8080/solr/#/collection1/analysis中选择不同的分词器来查看。

  • 相关阅读:
    抽象类的子类能够new
    Codeforces Round #250 (Div. 2) A
    软件架构设计箴言理解
    UVA1422-Processor(二分法+优先队列)
    猜你喜欢-----推荐系统原理介绍
    Android------Intent.createChooser
    mongodb3.0 性能測试报告 二
    *Android 多线程下载 仿下载助手(改进版)
    Gson解析数组和list容器
    oracle dbms_repcat_admin能带来什么安全隐患
  • 原文地址:https://www.cnblogs.com/nayitian/p/2866733.html
Copyright © 2011-2022 走看看