elastic search的数据里面,每个字段可以运用不同的分词算法,其中一个分词算法是ik_max_word。这个算法存在于analysis-ik插件中。本文主要说明:如何利用elasticsearch-plugin命令安装analysis-ik插件,以获得ik_max_word分词器。

苏南大叔:elastic search全文检索引擎,如何安装 analysis-ik 插件? - es安装插件
elastic search全文检索引擎,如何安装 analysis-ik 插件?(图8-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文记录elastic search安装ik_max_word插件。测试环境:win10elasticsearch@8.1.2analysis-ik@8.1.2

报错截图

如果没有安装analysis-ik的话,在运行代码的时候,可能会看到如下错误信息:

elasticsearch.BadRequestError: BadRequestError(400, 'mapper_parsing_exception', 'Failed to parse mapping: analyzer [ik_max_word] has not been configured in mappings')

截图如下:

苏南大叔:elastic search全文检索引擎,如何安装 analysis-ik 插件? - 缺少ik_max_word
elastic search全文检索引擎,如何安装 analysis-ik 插件?(图8-2)

下载地址

ik_max_word 这款分词器的github地址是:

在上述页面中,需要确定【合适的】压缩包的下载地址。比如:

苏南大叔:elastic search全文检索引擎,如何安装 analysis-ik 插件? - 下载地址
elastic search全文检索引擎,如何安装 analysis-ik 插件?(图8-3)

插件安装过程

定位到bin/elasticsearch-plugin程序,然后执行其install命令。比如:

elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.2/elasticsearch-analysis-ik-8.1.2.zip

期间会询问你是否真的要安装对应插件,请回答y

苏南大叔:elastic search全文检索引擎,如何安装 analysis-ik 插件? - 插件安装过程
elastic search全文检索引擎,如何安装 analysis-ik 插件?(图8-4)

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See https://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html

安装过程中,会提示java权限问题,暂时可忽略。

安装完成后,除了在plugins/analysis-ik/下生成文件外,在config/analysis-ik/下也有生成字典文件。

苏南大叔:elastic search全文检索引擎,如何安装 analysis-ik 插件? - ik字典文件配置
elastic search全文检索引擎,如何安装 analysis-ik 插件?(图8-5)

安装方式二

在官方源码的readme.md文件里面,提到了还可以直接解压release压缩包到plugins目录的方式。大家也可以试试。

苏南大叔:elastic search全文检索引擎,如何安装 analysis-ik 插件? - 直接解压
elastic search全文检索引擎,如何安装 analysis-ik 插件?(图8-6)

苏南大叔:elastic search全文检索引擎,如何安装 analysis-ik 插件? - 插件路径演示
elastic search全文检索引擎,如何安装 analysis-ik 插件?(图8-7)

版本号匹配

大家也注意到了,苏南大叔的测试环境中,elasticsearch最新版是8.1.3,而analysis-ik的最新版是8.1.2,版本不匹配,所以会安装失败。

Exception in thread "main" java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 8.1.2 but version 8.1.3 is running

在选择分词器版本号的时候,必须匹配elasticsearch的版本号,否则会报错。这个配置信息存在于下面这个文件:

plugins/analysis-ik/plugin-descriptor.properties

配置信息是:

elasticsearch.version=8.1.2

苏南大叔:elastic search全文检索引擎,如何安装 analysis-ik 插件? - 插件文件描述
elastic search全文检索引擎,如何安装 analysis-ik 插件?(图8-8)

虽然可以通过直接解压,并修改plugin-descriptor.properties文件的办法,强制安装插件。但是在最终使用的时候,还是会报错。所以,最好的办法就是先暂时先回归elasticsearch@8.1.2版本。

参考文献

综述

本以为是件很简单的事情,结果却问题百出... 更多elastic内容,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。