IK中文分词优化数字和英文搜索

Java 2020-08-30 15:02:40

IK中文分词优化数字和英文搜索

下面操作在Linux下执行,所添加的配置在windonws下依然有效。

运行环境

Solr:6.6.0
系统 : Linux
以下是设置solr中文分词器的方法。

注:开始之前,假定你已经成功登录solr的界面,并创建了core。

新特性
在使用IKAnalyzer分词器之前,先说明由于作者在12年之后没有更新,导致旧版本的分词器和新版本的solr6.6.0无法匹配。 因此在源码的基础上做些改动,以兼容新版的solr。

兼容新版的solr6.6.0;
英文和数据支持单字分词;
IK中文分词对于数字和英文的分词方式是:一个英文单词为一个语汇单元,一个数值为一个语汇单元。 比如:"2017 IK Analyzer是一个中文分词开源工具包。

如果你搜"345"是搜索不出来结果的,当然你可以使用lucene查询表达式或者WildcardQuery使用通配符查询。 但是如果搜索"456 IK Analy",又该如何处理,情况会变得更加复杂。

所以这里针对数值和英文单词做了单字分词,能更好的处理这些情况。

人们经常会因为忘了某些单词或者数字的具体内容,则只输入部分内容

配置IKAnalyzer
这里把Tomcat的路径为/usr/local/apache-tomcat-8.5.5做说明。

一、将 IK Jar包和配置文件上传到Linux系统中,copy IK Jar包到 /usr/local/apache-tomcat-8.5.5/webapps/solr/WEB-INF/lib 目录下。 即copy IK Jar包到solr项目的lib目录下。

cp IKAnalyzer2017_6_6_0.jar /usr/local/apache-tomcat-8.5.5/webapps/solr/WEB-INF/lib/
二、复制配置文件到 solr/WEB-INF/classes目录下(没有classes,则创建)

cp ext.dic IKAnalyzer.cfg.xml stopword.dic /usr/local/apache-tomcat-8.5.5/webapps/solr/WEB-INF/classes/
注意IKAnalyzer.cfg.xml的配置,以启用停用词点和扩展词典。




IK Analyzer 扩展配置

ext.dic;


stopword.dic;



这里我特别说明一下,为了方便,我将这三个配置文件集成到了IK Jar包中,所以这里第二步可以省略。