ElasticSearch学习(三),IK分词器

1、IK分词器介绍

     IK分词器在是一款 基于词典和规则 的中文分词器。

2、测试分词器

     在添加文档时会进行分词,索引中存放的就是一个一个的词(term),当你去搜索时就是拿关键字去匹配词,最终
找到词关联的文档。
 
测试当前索引库使用的分词器:
 
post 发送:localhost:9200/_analyze
 
{"text":"测试分词器,后边是测试内容:spring cloud实战"}
 
结果如下:
 
ElasticSearch学习(三),IK分词器

 

 

会发现分词的效果将 测试这个词拆分成两个单字,这是因为当前索引库使用的分词器对中文就是单字
分词。
 
3、安装IK分词器
 
1) 下载IK分词器:(Github地址:https://github.com/medcl/elasticsearch-analysis-ik
 

 

2) 下载zip

 

ElasticSearch学习(三),IK分词器

 

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

 

ElasticSearch学习(三),IK分词器

 

4) 重启ES

5) 测试分词效果:

发送:post localhost:9200/_analyze
 
{"text":"测试分词器,后边是测试内容:spring cloud实战","analyzer":"ik_max_word" }
 
ElasticSearch学习(三),IK分词器

 

4、两种分词模式

    ik分词器有两种分词模式:ik_max_wordik_smart模式。
 
        1ik_max_word
             会将文本做最细粒度的拆分,比如会将*人民大会堂拆分为*、中华人民、中华、
华人、人民*、人民、*、大会堂、大会、会堂等词语。
 
        2ik_smart
             会做最粗粒度的拆分,比如会将“*人民大会堂拆分为*、人民大会堂。
测试两种分词模式:
 
        发送:post localhost:9200/_analyze
        {"text":"*人民大会堂","analyzer":"ik_smart" }

5、自定义词库

    如果要让分词器支持一些专有词语,可以自定义词库。
    iK分词器自带一个main.dic的文件,此文件为词库文件。

 

ElasticSearch学习(三),IK分词器

在上边的目录中新建一个my.dic文件(注意文件格式为utf-8(不要选择utf-8 BOM))
可以在其中自定义词汇:
比如定义:
配置文件中配置my.dic,E:\elasticsearch\elasticsearch-6.2.1\plugins\ik\config\IKAnalyzer.cfg.xml
 
ElasticSearch学习(三),IK分词器

 

 

重启ES,测试分词效果:
 
发送:post localhost:9200/_analyze
 
{"text":"测试分词器,后边是测试内容:spring cloud实战","analyzer":"ik_max_word" }
 
ElasticSearch学习(三),IK分词器