Elasticsearch之中文分词

1、测试分词器

在添加文档时会进行分词,索引中存放的就是一个一个的词(term),当你去搜索时就是拿关键字去匹配词,最终

找到词关联的文档。

测试当前索引库使用的分词器:

post 发送:localhost:9200/_analyze

{“text”:”测试分词器,后边是测试内容:spring cloud 实战”}

结果如下:

Elasticsearch 之中文分词

会发现分词的效果将 “测试” 这个词拆分成两个单字“测”和“试”,这是因为当前索引库使用的分词器对中文就是单字

分词。

2 、安装IK分词器

使用 IK 分词器可以实现对中文分词的效果。

下载 IK 分词器:(Github 地址:https://github.com/medcl/elasticsearch-analysis-ik

下载 zip:

Elasticsearch 之中文分词

解压,并将解压的文件拷贝到 ES 安装目录的 plugins 下的 ik 目录下

Elasticsearch 之中文分词

测试分词效果:

发送:post localhost:9200/_analyze

{“text”:”测试分词器,后边是测试内容:spring cloud 实战”,”analyzer”:”ik_max_word” }

Elasticsearch 之中文分词

3、 两种分词模式

ik 分词器有两种分词模式:ik_max_word 和 ik_smart 模式。

1、ik_max_word

会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、

华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。

2、ik_smart

会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。

测试两种分词模式:

发送:post localhost:9200/_analyze

{“text”:”中华人民共和国人民大会堂”,”analyzer”:”ik_smart” }

4、 自定义词库

如果要让分词器支持一些专有词语,可以自定义词库。

iK 分词器自带一个 main.dic 的文件,此文件为词库文件。

Elasticsearch 之中文分词

在上边的目录中新建一个 my.dic 文件(注意文件格式为 utf-8(不要选择 utf-8 BOM))

可以在其中自定义词汇:

比如定义:

配置文件中配置 my.dic,

Elasticsearch 之中文分词

重启 ES,测试分词效果:

发送:post localhost:9200/_analyze

{“text”:”测试分词器,后边是测试内容:spring cloud 实战”,”analyzer”:”ik_max_word” }

Elasticsearch 之中文分词

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...