ElasticSearch学习(三),IK分词器
1、IK分词器介绍
IK分词器在是一款 基于词典和规则 的中文分词器。
2、测试分词器
在添加文档时会进行分词,索引中存放的就是一个一个的词(term),当你去搜索时就是拿关键字去匹配词,最终
找到词关联的文档。
测试当前索引库使用的分词器:
post 发送:localhost:9200/_analyze
{"text":"测试分词器,后边是测试内容:spring cloud实战"}
结果如下:
会发现分词的效果将 “测试” 这个词拆分成两个单字“测”和“试”,这是因为当前索引库使用的分词器对中文就是单字
分词。
3、安装IK分词器
1) 下载IK分词器:(Github地址:https://github.com/medcl/elasticsearch-analysis-ik)
2) 下载zip:
3) 解压,并将解压的文件拷贝到ES安装目录的plugins下的ik目录下
4) 重启ES
5) 测试分词效果:
发送:post localhost:9200/_analyze
{"text":"测试分词器,后边是测试内容:spring cloud实战","analyzer":"ik_max_word" }
4、两种分词模式
ik分词器有两种分词模式:ik_max_word和ik_smart模式。
1、ik_max_word
会将文本做最细粒度的拆分,比如会将“*人民大会堂”拆分为“*、中华人民、中华、
华人、人民*、人民、*、大会堂、大会、会堂等词语。
2、ik_smart
会做最粗粒度的拆分,比如会将“*人民大会堂”拆分为*、人民大会堂。
测试两种分词模式:
发送:post localhost:9200/_analyze
{"text":"*人民大会堂","analyzer":"ik_smart" }
5、自定义词库
如果要让分词器支持一些专有词语,可以自定义词库。
iK分词器自带一个main.dic的文件,此文件为词库文件。
在上边的目录中新建一个my.dic文件(注意文件格式为utf-8(不要选择utf-8 BOM))
可以在其中自定义词汇:
比如定义:
配置文件中配置my.dic,E:\elasticsearch\elasticsearch-6.2.1\plugins\ik\config\IKAnalyzer.cfg.xml
重启ES,测试分词效果:
发送:post localhost:9200/_analyze
{"text":"测试分词器,后边是测试内容:spring cloud实战","analyzer":"ik_max_word" }