情况简述
windows平台,下载了7.17.23的es以及7.17.23的ik分词器的zip包之后(
下载地址(官方推荐的):Index of: analysis-ik/stable/
),解压该ik的包到es的plugins下,目录结构:
里边的内容:
启动es失败,报错内容如下:
解决办法
方法一. 按照github上ik的官方安装方法:
执行时会有这个提示:
选择y继续就行。安装后再重启es就成功了
方法二:由于一成功了,对比了下发现,一相对于我直接解压缩的ik包,少了config的目录:
所以,这次解压后,把config删掉试试,发现可以启动,但是我抱着严谨的态度,又把该插件的config拿回来启动,居然还是成功的!所以,可能是因为一已经成功的修改某些我不知道的配置,所以才成功的。因此,我重新解压缩了一个es的程序,然后执行方法二,依旧是失败的!所以方法二是失败的!
方法三:使用install命令读取zip包安装
执行成功时会有下边的提示:
同用url安装,给出了系统提示。选择y即可。
tips:
1. 指定的包需要绝对路径,不然会报错
2. 指定的包所属于的路径中若是有空格,则会失败,如下边的“Program Files”就有个空格:
所以把zip包放到没有空格目录下执行。
方法四:经过对安装成功的es的文件目录的观察,发现在es的config下多个文件:
从而想到,方法二中,是不是把那个config拿到这里就可以了?所以试一下:
1. 手动建立ik-config文件夹,把解压后的config的内容放到这里:
2. plugins下建立文件夹叫:
存放解压后留下来的文件。
启动,还是报错,而且依旧是读取那个config下了,明明都转移了:
此时,分析失败原因有2:
1. 在es的config下,建立的那个ik的config的目录的名字不对,也许要与plugins下ik的properties中的某个名字对应。
2. ik的config包就不能动。
综合分析之下,基于方法一和三的成功案例,感觉1应该靠谱。再观察了三成功后的es的config下多出来的那个ik的config文件夹,名字叫做:analysis-ik,与ik的descriptor.properties中的name属性一致:
于是乎,把es的config中ik的config文件夹重命名为那个值:
启动,成功了!没有报错!
查看插件:
http://localhost:9200/_cat/plugins
返回结果:
tips:顺带一提,这里返回的名称,等于是descriptor.properties中的"${name} ${version}"