黑白客 发表于 2021-7-30 14:33

ik自定义分词器不生效问题

@(ik分词器如何自定义分词)
## 声明
本文涉及的es, elasticsearch-head, kibana, ik分词器的安装配置可以参考我的其它博客
本文主要参考狂神说java视频课程编写。主要是为了巩固学习,复习方便。
## ik分词器如何自定义分词
1.可以通过`elasticsearch-plugin list` 查看加载进来的插件
如图:![在这里插入图片描述](https://img-blog.csdnimg.cn/4c38579984d2453e94c0a5b53b9aeeb1.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODUwNDg5,size_16,color_FFFFFF,t_70)![在这里插入图片描述](https://img-blog.csdnimg.cn/44f483c7ed3845f4b3a98c27a8facb68.png)
2. 利用kibana测试不同分词效果
第一个查询,结果为“中国共产党” 但是第二个会分的很多
![在这里插入图片描述](https://img-blog.csdnimg.cn/1b09348f8a3d48e89eb48b96620267db.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODUwNDg5,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/8335b3ee362c4f83acfbe32329bfa9bb.png)
3. 当我们输入狂神说,或者自己的名字的时候,发现被分割开了。但是这并不是我们想要的。我们该如何处理呢
![在这里插入图片描述](https://img-blog.csdnimg.cn/827ae9c98c6d4c39a96a4e34f889cb85.png)
5.如下: 在es的安装路径的plugins下的ik中找到唯一的配置文件.xml
![在这里插入图片描述](https://img-blog.csdnimg.cn/7d37e30133954a569a4dce076563a7ed.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODUwNDg5,size_16,color_FFFFFF,t_70)
6.根据提示,我们在这里写如自己创建的.dic文件的名字。
![在这里插入图片描述](https://img-blog.csdnimg.cn/7e6b30c9e0c84f38b1732e82fb847c39.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODUwNDg5,size_16,color_FFFFFF,t_70)
7.查看es启动日志可以看到加载了我们的my.dic
![在这里插入图片描述](https://img-blog.csdnimg.cn/705dae4ccfe742fcbbcde366f3101bb6.png)
再次查询就可以看到 我们的名字变成一个词了
![在这里插入图片描述](https://img-blog.csdnimg.cn/c2f1efbead4847cbae4ed2363e70226a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODUwNDg5,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/df37ef71fb8b420caa3d837e81ab6991.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODUwNDg5,size_16,color_FFFFFF,t_70)


## 自定义分词不生效问题
在es日志中加载了my.dic不见得 就可以使用了。
原因 编码问题
我是直接右键新建文本文档,然后将文件名修改为my.dic。这个就可能出现编码问题
使用notepad++打开后发现果然,编码为ANSI
![在这里插入图片描述](https://img-blog.csdnimg.cn/a11cf99db9af4617b298f7a066bfca0a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODUwNDg5,size_16,color_FFFFFF,t_70)
解决方法:分词的编码问题,在notepad中Encoding》中修改编码格式为UTF-8即可
![在这里插入图片描述](https://img-blog.csdnimg.cn/c0f2dbcc94344852b438b81b6eacc3d8.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODUwNDg5,size_16,color_FFFFFF,t_70)
然后重启es 和kibana

Sen 发表于 2021-7-30 17:26

《我在无爱学文本检索第一天》
《我在无爱学JavaScript第99天》

感谢分享, 收藏了, Solr会用到。
页: [1]
查看完整版本: ik自定义分词器不生效问题