1. 拼音分词器

要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch拼音分词插件

7.12.1 版本(因为我的es是7.12.1版本)

在这里插入图片描述

在这里插入图片描述


1.1.1 在线安装

安装步骤:

# 进入容器内部
docker exec -it es /bin/bash

# 在线下载并安装
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.12.1/elasticsearch-analysis-pinyin-7.12.1.zip

#退出
exit
#重启容器
docker restart es

说明:安装的链接怎么获得
在这里插入图片描述

我这里linux在下载的时候超时了,所以我选择离线安装
在这里插入图片描述


1.1.2 离线安装(推荐)

查看数据卷目录:

安装插件需要知道elasticsearch的plugins目录位置,而我们用了数据卷挂载,因此需要查看elasticsearch的数据卷目录,通过下面命令查看:

docker volume inspect es-plugins

显示结果:
在这里插入图片描述
说明plugins目录被挂载到了:/var/lib/docker/volumes/es-plugins/_data 这个目录中。

解压缩分词器安装包:

把下载好的ik分词器解压缩,重命名为ik
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上传到es容器的插件数据卷中:

也就是/var/lib/docker/volumes/es-plugins/_data
在这里插入图片描述

重启容器:

docker restart 容器名

在这里插入图片描述

测试:

在这里插入图片描述
分词结果

{
  "tokens" : [
    {
      "token" : "kuai",
      "start_offset" : 0,
      "end_offset" : 0,
      "type" : "word",
      "position" : 0
    },
    {
    # 这个是 kuai le shi jian 的首字母集合
      "token" : "klsj",
      "start_offset" : 0,
      "end_offset" : 0,
      "type" : "word",
      "position" : 0
    },
    {
      "token" : "le",
      "start_offset" : 0,
      "end_offset" : 0,
      "type" : "word",
      "position" : 1
    },
    {
      "token" : "shi",
      "start_offset" : 0,
      "end_offset" : 0,
      "type" : "word",
      "position" : 2
    },
    {
      "token" : "jian",
      "start_offset" : 0,
      "end_offset" : 0,
      "type" : "word",
      "position" : 3
    }
  ]
}



Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐