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

来源:互联网 发布:淘宝达人注册信息 编辑:程序博客网 时间:2024/05/04 20:58

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

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 版本 master 5.x -> master 5.0.0-beta1 5.0.0-beta1 1.9.5 2.3.5 1.9.4 2.3.4 1.9.3 2.3.3 1.9.0 2.3.0 1.8.1 2.2.1 1.7.0 2.1.1 1.5.0 2.0.0 1.2.6 1.0.0 1.2.5 0.90.x 1.1.3 0.20.x 1.0.0 0.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分词;

1 0
原创粉丝点击