一.什么是分词,为什么要分词
分词技术就是搜索引擎针对用户提交查询的关键词串进行的查询处理后根据用户的关键词串用各种匹配方法进行分词的一种技术。
分词的目的是为了更容易、更精准的命中搜索关键词,更容易是因为分词将搜索关键词分开为多个查询关键词,只要匹配上一个就视为相关结果,更精准是因为分词之后可以比较关键词的命中率,从而实现排序,将你更需要的结果排列在前面。
二.为何选择IK分词器
在Elasticsearch中,内置了很多分词器,但默认的分词器对中文的支持都不是太好。所以需要单独安装插件来支持,比较常用的是IK, Pinyin,Paoding, MMSEG等还有个smartcn分词,不过其实比较鸡肋,汉语实在博大精深,最了解的汉语的还是自己人,官方的standard分词器简直惨不忍睹……基本上就是把字全部拆成一个,准确率感人。目前一般推荐使用的是IK分词,词库丰富,且跟进了ES的最新版本,所以这次我们选择安装的也是IK分词器。
三.安装步骤
虽然ElasticSearch拥有直接安装plugin的功能,但是……IK分词器的最新版本并没有提供可以直接通过bin/plugin安装的包,如果你试过的话,会得到如下结果
所以我们只能通过maven打包来给ES添加该分词器了。(作者github的readme中安装方法就是maven编译后手动安装)被作者误导了……他release里有打包好的版本……直接用就行
①.首先下载IK分词器的包,我们的ES版本是2.3.5,对应的IK分词器版本是1.9.5 所以我下载https://github.com/medcl/elasticsearch-analysis-ik/archive/v1.9.5.zip然后解压,为之后做准备 ②.下载最新版本的http://ftp.riken.jp/net/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.zip 解压并将解压出来的文件夹改名&移动为 /usr/local/maven (命令 mv apache-maven-3.3.9 /usr/local/maven) ③.修改/etc/profile,添加如下内容 MAVEN_HOME=/usr/local/maven PATH=$PATH:$MAVEN_HOME/bin export PATH MAVEN_HOME 和之前的java配置合并那就是 JAVA_HOME=/usr/java/jdk1.8.0_102 MAVEN_HOME=/usr/local/maven PATH=$JAVA_HOME/bin:$PATH:$MAVEN_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export MAVEN_HOME export PATH export CLASSPATH ④.执行source /etc/profile ,现在你已经可以使用mvn命令了 ⑤.cd进入之前解压的IK分词器文件夹,执行mvn package命令打包 ⑥进入target/releases文件夹中,将elasticsearch-analysis-ik-1.9.5.zip解压到ES的plugin/ik目录下(需自己创建) ⑦重启ES,在加载日志中你会发现ik的踪迹
OK,这样一来ik分词器便安装完成了。如果需要将ES的默认分词器修改为ik,那我们只需要在ES目录下的config/elasticsearch.yml中添加index.analysis.analyzer.default.type: ik 就行
PS.啥都别说了,我二逼了……作者的release里有编译好的版本……直接用就行
文章评论