欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

solr系列2——solr集成IK Analyzer中文分词器

程序员文章站 2022-03-11 08:26:40
...

solr 中文分词器 IK Analyzer整合

  • 下载 IK Analyzer2012ff_hf1.zip分词包
  • 解压
  • IKAnalyzer2012FF_u1.jar拷贝到/usr/local/tomcat/webapps/solr/WEB-INF/lib/
  • /usr/local/tomcat/webapps/solr/WEB-INF/下创建classes文件夹

    mkdir classes

  • 将前面解压的分词包中的IKAnalyzer.cfg.xmlstopword.dic拷贝到classes
  • 修改/usr/local/solr/example/solr/collection1/conf/schema.xml文件,添加中文分词器

    vim /usr/local/solr/example/solr/collection1/conf/schema.xml
    添加如下配置:

    <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>
  • 重启tomcat,即可

在IK Analyzer上自定义扩展词库

  • 修改/usr/local/tomcat/webapps/solr/WEB-INF/classes/IKAnalyzer.cfg.xml文件

    vim /usr/local/tomcat/webapps/solr/WEB-INF/classes/IKAnalyzer.cfg.xml
    添加如下配置:

     <!--用户可以自定义扩展词库-->
     <entry key="ext_dict">ext.dic;</entry>
    
  • /usr/local/tomcat/webapps/solr/WEB-INF/classes/下新建ext.dic文件,添加自定义分词

    cd /usr/local/tomcat/webapps/solr/WEB-INF/classes && touch vim ext.dic
    添加分词如下:

    小明今天
      伟大的日子
      不容易
      暴走模式
    
  • 重启tomcat,即可
  • 同理,如果想禁用分词索引,在/usr/local/tomcat/webapps/solr/WEB-INF/classes下的stopword.dic文件中定义即可,stopword.dic文件默认IK Analyzer已经提供,只需要添加禁用分词就可以了。

使用IK Analyzer对field进行分词索引

  • 只需要在添加对应的field时将type的值设置为text_ik即可

    具体配置如下:
    vim /usr/local/solr/example/solr/collection1/conf/schema.xml

    <field name="id" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="sku" type="text_ik" indexed="true" stored="true" omitNorms="true"/>
    <field name="name" type="text_ik" indexed="true" stored="true"/>
    <field name="manu" type="text_ik" indexed="true" stored="true" omitNorms="true"/>
    <field name="cat" type="text_ik" indexed="true" stored="true" multiValued="true"/>
  • 重启tomcat,即可

建议每次修改文件时把tomcat先关闭,避免不必要出错。

作者:逐暗者 (转载请注明出处)