一、问题描述:IK分词器版本和ES版本不一致,无法找到和自己ES版本匹配的分词器。
IK分词器,提供的插件版本,远赶不上ES的更新版本,在使用过程中,不一定能顺利的找到与自己使用的ES版本相对应。在ES集群中使用与当前版本不同版本的Ik分词器,集群在启动的过程中,会校验版本,无法通过则节点停止运行!
Releases · medcl/elasticsearch-analysis-ik · GitHub
如下:从8.7.0版本直接到了8.8.1版本。中间都都找不到对应版本的分词器。
二、问题解决方案
最简单的方式就是,选一个最接近的版本,然后下载分词器。然后修改一个配置即可。操作步骤如下
- 进入到IK分词器解压后的目录下
- 修改 plugin-descriptor.properties 文件
修改两个地方,即可,改成和自己集群对应的版本。以我测试案例,我是使用8.8.0版本的es,这里使用了8.8.1版本的Ik分词器,所以我把version和
elasticsearch.version都改成了8.8.0。
- 测试验证,重启集群
(如果不改,节点肯定是不能正常启动的,这里修改后可以正常启动),在kibana上查看验证效果。
在kibana上可以看到插件正常加载
再测试一下分词效果
三、这样修改会不会有副作用?
实际上分词器的本质内容,已经好几年都没改过了,不用过多的担心。可以看看核心代码都是几年前写的。