什么是IK分词器?
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词器是将每个字看成一个词,比如"我爱技术"会被分为"我","爱","技","术",这显然不符合要求,所以我们需要安装中文分词器IK来解决这个问题
IK提供了两个分词算法:ik_smart和ik_max_word
其中ik_smart为最少切分,ik_max_word为最细粒度划分
安装 IK:
同样下载不说直接安装.记得版本相同
解压缩后拷贝到ElasticSearch的plugins文件夹下
改了个名
重启ES
之前是没有插件加载的
添加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 910
内容关于:ElasticSearch
本文来源于网络,只做技术分享,一概不负任何责任