IK分词器

什么是IK分词器?算法

分词:即把一段中文或者别的划分红一个个的关键字,咱们在搜索时候会把本身的信息进行分词,会把数据库中或者索引库中的数据进行分词,而后进行一个匹配操做,默认的中文分词器是将每一个字当作一个词,好比"我爱技术"会被分为"我","爱","技","术",这显然不符合要求,因此咱们须要安装中文分词器IK来解决这个问题数据库

IK提供了两个分词算法:ik_smart和ik_max_word网络

其中ik_smart为最少切分,ik_max_word为最细粒度划分工具

安装 IK:测试

一样下载不说直接安装.记得版本相同编码

 

解压缩后拷贝到ElasticSearch的plugins文件夹下spa

 

 改了个名插件

 

 重启ES命令行

以前是没有插件加载的3d

 

 添加IK后

 

 能够清晰的看到加载了 analysis-ik

也能够经过ES自带的工具查看 命令行执行 ElasticSearch-plugin list

 

 进入Kibana测试

先测试 ik_smart

 

 而后测试 ik_max_word

 

 测试 "超级喜欢彼岸舞" 分别测试

 

 

 

 发现结果没有区别,并且他不认为 彼岸舞 是一个词,这就是一个问题,则么办呢?

这种本身须要的词,须要本身加到字典中

IK分词器增长本身的配置:

咱们找到IK的配置文件,位于ik/config/IKAnalyzer.cfg.xml

 

 

 

 能够在这里添加本身的扩展词典和停用词词典

 

 添加一个本身的词典

而后去建立文件

 

 加入本身的词

 

 保存后重启ES

就知道远远没有视屏中的顺利..呵呵报错...一大堆,先无论啥错,坑定和刚才配置有关

先尝试把刚才定义的词典dance.dic编码改成UTF-8试试
呵呵没用..仍是报错

是否是我不能建立dic文件,拷贝别的更名试试,删除其中的内容,添加本身定义的

仍是报错,无语了,百度求救

百度了半天也没有搜到任何相关的东西

只能先把配置中的dance.dic删除了,试试行不行

而后发现,删除后重启仍是报错,我TM...无语了

当我快绝望的时候发现,原来Kibana也一直在报错,接着我把Kibana和head插件都关闭后从新启动

发现不报错了,接下来从新配置IK配置文件,而后重启,发现一点事也没有了

 

 

能够看到了加载了个人dance.dic

而后启动Head插件和Kibana

启动完成后再次进行测试

 

 

 发现 彼岸舞 已经成为一个词了

做者:彼岸舞

时间:2020\09\10

内容关于:ElasticSearch

本文来源于网络,只作技术分享,一律不负任何责任

相关文章
相关标签/搜索