一般来说,网上很多教程在讲如何安装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分词器啦。
转载须经本文作者允许,未经允许不可转载和复制。