您的位置:首页 > 其它

ElasticSearch学习教程(三)-中文分词器IK

2016-10-08 10:03 489 查看
    分词器的作用就是把用户输入的短语分成粒度更小的词语,方便匹配查找关键字,英文分词比较方便,但是中文分词就比较复杂了,比如“中华人民共和国”,可以分词的情况很多,在不同的地方断句意思就不一样,下面我们对比两款分词器:

1.elaesticserch 自带的标准分词器

    打开elasticsearch-head界面,切换至“复合查询”,我们测试下“中华人民共和国”的分词效果:

http://IP:端口/_analyze?analyzer=standard&pretty=true&text=中华人民共和国


效果:



可以看到标准分词器将短语分成了独立的单词,没有词语,分词效果很难满足我们中文的要求。

2.IK分词器

2.1 下载

    地址:https://github.com/medcl/elasticsearch-analysis-ik,此处需要注意的是版本匹配问题,不同的IK分词器版本对应不同的Elasticsearch版本:

IK 版本ES 版本
master5.x -> master
5.0.0-beta15.0.0-beta1
1.9.52.3.5
1.9.42.3.4
1.9.32.3.3
1.9.02.3.0
1.8.12.2.1
1.7.02.1.1
1.5.02.0.0
1.2.61.0.0
1.2.50.90.x
1.1.30.20.x
1.0.00.16.2 -> 0.19.0
2.2 编译安装

    下载下来的是Java源码,需要用maven进行编译,至于maven怎么安装使用本文不在赘述

(1) 编译

    进入源码的根目录,使用以下命令编译,编译后生成的ZIP文件在target/releases目录下

mvn clean package


(2) 安装

    将编译好的包拷贝到elasticsearch下的plugins/ik目录下,并解压文件

unzip elasticsearch-analysis-ik-{version}.zip


3.重启ES,测试

    将standard analyzer换成ik analyzer即可:

http://IP:端口/_analyze?analyzer=ik&pretty=true&text=中华人民共和国


效果:



从结果看,短语被分成了合理的词语,不再是独立的无意义的单词;如果是中文全文检索的话,推荐使用IK分词;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  elasticsearch