Elasticsearch安装需编译的版本分词器,出现的编译问题

文章讲述了在安装Elasticsearchik分词器时遇到的三个问题:版本不匹配导致的Tokenizer访问错误、构造器使用不当,以及混淆jar包与plugin-descriptor.properties的重要性。作者详细解释了如何解决这些问题并提供了解决方案。
摘要由CSDN通过智能技术生成

一般来说,网上很多教程在讲如何安装es的ik分词器,包括项目文档也有提及:​​​​​​Releases · medcl/elasticsearch-analysis-ik · GitHub

如果是对应版本作者已经编译好的还比较容易安装,如下图:

但如果是只有源代码的版本,那就需要自己编译了。如下图:

问题一:没仔细看文档,一拿到源代码就直接编译,忽略了版本问题

一编译就会报错:无法访问org.apache.lucene.analysis.Tokenizer

看着很无力,但其实文档有提到一句:NOTE: replace 6.3.0 to your own elasticsearch version

所以需要在pom,xml修改特定的版本号,如7.17.15。

问题二:因版本问题且代码没兼容的问题,编译报错

改完版本之后再compile,发现出现问题:无法将类 org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider中的构造器 AbstractIndexAnalyzerProvider应用到给定类型;

首先得摆正好心态,不要怀疑编译器和自己是不是复制错了,编译器说代码错了就是错了,改掉错的地方再试试就好。

其实也就是把这个入参加到super()里面作为第一个参数就可以了。

再compile下就成功啦!接着就可以执行mvn package了。

问题三:执行完package之后,找不到zip包,错拿jar包了

其实只要随意打开一个ik分词器作者已经打包好的zip包,可以发现里面不止jar包,还有其他文件。

尤其是里面的plugin-descriptor.properties,因为如果没有这个文件,一启动es就会报:Caused by: java.nio.file.NoSuchFileException: /usr/share/elasticsearch/plugins/ik/plugin-descriptor.properties

而这个zip包在编译好的./target/release文件夹下。

解压后的文件有这些:

在此就可以正常安装ik分词器啦。

转载须经本文作者允许,未经允许不可转载和复制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值