solr 6.3安装ik分词器(5和5以上的版本通用)

兄弟们,血的教训啊,ik分词器配了好几天,一直不通过,终于弄好了。

  1. 中文分词在solr里面是没有默认开启的,需要自己配置一个中文分词器。
  2. 目前可用的分词器有smartcn,IK,Jeasy,庖丁。其实主要是两种,一种是基于中科院ICTCLAS的隐式马尔科夫HMM算法的中文分词器,如smartcn,ictclas4j,优点是分词准确度高,缺点是不能使用用户自定义词库;另一种是基于最大匹配的分词器,如IK ,Jeasy,庖丁,优点是可以自定义词库,增加新词,缺点是分出来的垃圾词较多。各有优缺点。
  3. 主流还是ik,可以扩展自己的词库,非常方便,加入一些热搜词,主题词,对于搜索而言,非常方便 

     4.之前公司一直使用cdh搭建的solr,版本是4.x,因为一些原因,需要部署原生的solr,最新的solr7.3,为了稳妥,用了6.3的版本,大致功能没有啥太大变化,最新版本啥的,不存在的。

     具体操作步骤(jetty部署,没用tomcat, 业务没要求,jetty足够了):

    (1).下载ik (5及以上版本通用) http://files.cnblogs.com/files/zhangweizhong/ikanalyzer-solr5.zip 

    (2).把ext.dic + IKAnalyzer.cfg.xml + stopword.dic 放在classes目录下,classes一般都是新建的solr 6.3安装ik分词器(5和5以上的版本通用)

   (3)把两个jar文件放在lib目录下  solr 6.3安装ik分词器(5和5以上的版本通用)

5.跟4不同,没有schema.xml,而是成了manage-schema,不要相信网上的把manage-schema拷贝成schema.xml,这样做你会发现你在schema.xml中的配置的字段属性和你在页面上看到的属性不一致,就用manage-schema修改

      <fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" isMaxWordLength="false" useSmart="true" conf="ik.conf"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" isMaxWordLength="true" useSmart="true" conf="ik.conf"/>
</analyzer>

  </fieldType>

讲解:useSmart="false",表示不智能切割,结果如下,中国人,中国,国人。都是分出来的词

             isMaxWordLength="false",和useSmart="false",功能一样,二者选一配置即可(亲测!!!)

solr 6.3安装ik分词器(5和5以上的版本通用)


    useSmart="true",表示智能切割,同样的一句话,只会分出中国人。

     isMaxWordLength="true",useSmart="true",功能一样,二者选一配置即可

solr 6.3安装ik分词器(5和5以上的版本通用)

      

在索引建立的时候,不需要智能切割,尽可能多的存词,设置成false.

在查询的时候,需要搜索词最大长度的匹配,设置为true。

       

参考文档:https://www.cnblogs.com/shaosks/p/8204615.html

                https://blog.csdn.net/zcl_love_wx/article/details/52091622