29.ElasticSearch使用ik分词器

我们先体验一下自带的分词器Standard

 我们发现有点扯淡,一个字一个字的分,实际上我们预期的是:”中国“,”银行“,”中国银行“,”软件“,”中心“,”软件中心“这样的,所以对于中文我们需要额外安装我们自己的分词器来识别中文词语,我们一般使用ik分词器。

安装ik分词器

github的地址: https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v6.4.2 

根据ES的版本来安装的,先看一下我们的ES是哪个版本:

 那我们就安装7.4.2版本的ik分词器:

 右键点击标红的地方,选择复制链接地址,就拿到了这个zip的下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip

 进入es容器内部的plugins目录,实际上并不需要,因为我们的es做了外部映射,映射到了如下这个目录:

 进入plugins目录,创建一个ik文件夹: mkdir ik 

 进入ik文件夹, cd ik ,执行命令: wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip 

 下载完成后解压zip文件: unzip elasticsearch-analysis-ik-7.4.2.zip 

 删除安装包: rm elasticsearch-analysis-ik-7.4.2.zip  

 设置ik的文件夹权限为可读可写可执行: chmod -R 777 ik/ 

怎么看ik分词器是否安装成功呢

查一下elasticsearch的容器ID:

 进入容器的elasticsearch的内部: docker exec -it c5d /bin/bash 

 输入命令: pwd 

 进入到plugins: cd plugins/ 可以看到里面也有我们在容器外部解压的ik文件夹映射过来

进入到elasticsearch的bin目录看一下可执行命令:

 看到了有 elasticsearch-plugin ,可以试一下: elasticsearch-plugin list 

 这就说明安装成功了,安装成功后需要重启服务,退出容器(exit命令),重启服务:

测试ik分词器

 打开kinaba发现遇到报错:

 我们查一下kinaba的日志: docker logs d33 

 这就是ES的容量不够导致的熔断,导致Kibana连接ES连接不上,解决办法就是改大es的容内存容量

docker修改es容器的内存

# 先停止docker容器,再停止docker服务,停止docker服务命令如下
systemctl stop docker
service docker stop
# 找到容器的配置文件存储目录,此目录下是容器启动时的配置文件所在目录
cd /var/lib/docker/containers/
#进入es这个容器ID的文件夹
cd xxx/ # 修改配置文件config.v2.json vim config.v2.json

 修改最大内存:

 修改后再启动服务启动容器:

# 启动docker服务
systemctl start docker
# 启动docker服务
service docker start

 再打开Kibana就OK了。

测试ik_smart分词

测试ik_max_word分词

posted @ 2023-06-29 22:52  lucsa  阅读(84)  评论(0编辑  收藏  举报