在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件


title: 在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件
date: 2022-08-28 00:00:00
tags:

  • ElasticSearch
  • elasticsearch-analysis-ik
  • 中文分词插件
    categories:
  • ElasticSearch

安装

手动下载
  • 在官方发布页面下载安装包 elasticsearch-analysis-ik-[版本].zip,其版本与你安装的ES要相同。
  • 执行命令 ~/elasticsearch-8.3.3/plugins/analysis-ik 创建ik插件存储目录,将上面的文件解压后放到analysis-ik目录内:
tianmx@mydebian:[~/elasticsearch-8.3.3/plugins/analysis-ik]: ll
总用量 1.5M
drwxr-xr-x 3 tianmx tianmx 4.0K  828 23:09 ./
drwxr-xr-x 5 tianmx tianmx 4.0K  828 23:08 ../
-rw-r--r-- 1 tianmx tianmx 258K  929  2020 commons-codec-1.9.jar
-rw-r--r-- 1 tianmx tianmx  61K  913  2020 commons-logging-1.2.jar
drwxr-xr-x 2 tianmx tianmx 4.0K  828 17:05 config/
-rw-r--r-- 1 tianmx tianmx  54K  828 22:56 elasticsearch-analysis-ik-8.3.3.jar
-rw-r--r-- 1 tianmx tianmx 720K  929  2020 httpclient-4.5.2.jar
-rw-r--r-- 1 tianmx tianmx 320K  929  2020 httpcore-4.4.4.jar
-rw-r--r-- 1 tianmx tianmx 1.8K  828 22:56 plugin-descriptor.properties
-rw-r--r-- 1 tianmx tianmx  125  828 22:56 plugin-security.policy
远程安装
  • 使用 elasticsearch-plugin 安装(从 v5.5.1 版本开始支持)
  • 执行命令 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/[版本]/elasticsearch-analysis-ik-[版本].zip 将自动下载并解压到插件目录。
  • 下载插件的地址需从IK官方Github发布页面上复制,注意版本号与你安装的ES一致。

手动编译

一般来说官方会适时发布与新版本相匹配包,但有时也并不会那么及时,在写本篇文章时并没有8.3.3的版本。另外如果你想对源码作一些改造调整的话,还是自己编译最方便。

  • 编译环境
    • IntelliJ IDEA 2022.2.1(非必需,你可以用文本编辑器)
    • Apache Maven 3.8.1
    • OpenJDK 17
  • 从Github上下载最新源码,这里我们取master分支的代码。
  • 需要对源码进行如下调整才能顺利编译:
    1. 打开 pom.xml 文件将 <elasticsearch.version>7.16.0</elasticsearch.version> 修改为 <elasticsearch.version>8.3.3</elasticsearch.version>
    2. 将文中 <maven.compiler.target>1.8</maven.compiler.target> 修改为 <maven.compiler.target>17</maven.compiler.target>
    3. 将文中 maven-javadoc-plugin 插件配置整个删除掉。
    4. 打开 IkAnalyzerProvider.java 类修复构造方法报错问题,也就是将 super(indexSettings, name, settings); 改为 super(name, settings); 即可。
  • 在IDEA的Maven窗口中找到Profiles节点,然后选中release,点击左上角刷新按钮,如果想跳过单元测试可点击 Skip Tests 按钮。按住Ctrl键并用鼠标依次单击选中clean和package,最后单击工具类绿色播放按钮。
  • (可选项)如果你想通过命令行执行maven进行编译,可以执行 mvn -DskipTests=true clean package -P release
  • 如果一切顺利你应该能够在编译目录 target/releases/elasticsearch-analysis-ik-8.3.3.zip 中看到打好的zip包。
  • 接下来按上面介绍的手动下载章节来完成安装工作。

测试

注意:插件安装完后要重启ES。

  • 重启ES后执行如下命令查看插件是否安装成功
tianmx@mydebian:[~/elasticsearch-8.3.3]: ./bin/elasticsearch-plugin list
analysis-icu
analysis-ik
analysis-smartcn
  • 如果你已经安装好了Kibana,那么可以进入 http://192.168.0.110:5601/app/dev_tools#/console 页面来测试一下,随便找个索引就可以发送请求测试。
  • ik_smart分词器: 会做最粗粒度的拆分,适合 Phrase 查询。
GET metrics-endpoint.metadata_current_default/_analyze
{
  "text": "中华人民共和国MN",
  "tokenizer": "ik_smart"
}

{
  "tokens": [
    {
      "token": "中华人民共和国",
      "start_offset": 0,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "mn",
      "start_offset": 7,
      "end_offset": 9,
      "type": "ENGLISH",
      "position": 1
    }
  ]
}
  • ik_max_word分词器: 会将文本做最细粒度的拆分,会穷尽各种可能的组合,适合 Term Query。
GET metrics-endpoint.metadata_current_default/_analyze
{
  "text": "中华人民共和国MN",
  "tokenizer": "ik_max_word"
}

{
  "tokens": [
    {
      "token": "中华人民共和国",
      "start_offset": 0,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "中华人民",
      "start_offset": 0,
      "end_offset": 4,
      "type": "CN_WORD",
      "position": 1
    },
    {
      "token": "中华",
      "start_offset": 0,
      "end_offset": 2,
      "type": "CN_WORD",
      "position": 2
    },
    {
      "token": "华人",
      "start_offset": 1,
      "end_offset": 3,
      "type": "CN_WORD",
      "position": 3
    },
    {
      "token": "人民共和国",
      "start_offset": 2,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 4
    },
    {
      "token": "人民",
      "start_offset": 2,
      "end_offset": 4,
      "type": "CN_WORD",
      "position": 5
    },
    {
      "token": "共和国",
      "start_offset": 4,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 6
    },
    {
      "token": "共和",
      "start_offset": 4,
      "end_offset": 6,
      "type": "CN_WORD",
      "position": 7
    },
    {
      "token": "国",
      "start_offset": 6,
      "end_offset": 7,
      "type": "CN_CHAR",
      "position": 8
    },
    {
      "token": "mn",
      "start_offset": 7,
      "end_offset": 9,
      "type": "ENGLISH",
      "position": 9
    }
  ]
}
  • 我们前面有安装过analysis-smartcn,如果想测试它只需要将 tokenizer 的值改为 smartcn_tokenizer 即可。
  • IK官方有提供一份测试说明,跟着操作一遍也能验证IK安装是否成功。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值