31.ElasticSearch自定义词库

发布时间 2023-08-10 22:12:52作者: lucsa

安装nginx

在mydata文件夹下创建一个nginx文件夹:

mkdir nginx

 

随便启动一个nginx实例,只是为了复制出配置:

docker run -p 80:80 --name nginx -d nginx:1.10

 如下图可以看到启动好了nginx容器,当然这个容器我们只是为了用来复制它的配置文件:

 进入到mydata文件夹,将容器内的配置文件拷贝到当前目录:

#复制容器nginx里边的/etc/nginx文件夹下的内容
docker container cp nginx:/etc/nginx .

 停止掉nginx容器,删除nginx容器,因为已经复制好了,nginx容器就已经没有价值了:

docker stop nginx
docker rm nginx

配置都在nginx文件夹,这样不太规范,我们调整下给配置放在nginx/conf文件夹下:

cd /mydata
mv nginx conf
mkdir nginx
mv conf nginx/

 创建一个新的nginx容器:

docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

 

 那我们就安装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分词