目录
Linux docker部署Elasticsearch服务以及ik插件并实现ik_smart最粗力度分词
需求
项目的缘故,需要实现对上传文档进行文字检索,采用了Elasticsearch(以下简称为es)第三方服务,具体需求是对词汇进行搜索,但es默认的分词器分词方式是最小力度划分,例如 检索“中华人民共和国”,检索时会划分为 “中”、“国”,“人”、“民”、“共”、“和”、“国”,然后对文档进行搜索匹配,这时比如“大国中间的”中的“中”也会匹配到,这时需要引入ik插件,采用 ik提供的ik_smart分词,检索时将检索语句划分为词语,例如“中华人民共和国”,可能会划分为“中国”、“人民”、“共和国”,以词语进行划分。
下载并部署Elasticsearch(docker容器部署)
1. 拉取Elasticsearch镜像
镜像仓库 https://hub.docker.com/
这个外网可以访问,如果是内网的话看你内网的镜像仓库地址
($操作表示均在Linux服务器输入框中操作)
#拉取镜像文件
$ docker pull elasticsearch
#说明:此处也可在Tags中选择指定版本的elasticsearch
#说明:拉取镜像文件需要镜像仓库地址,如下
$ docker pull reg.****.com/basicimage/elasticsearch:7.16.2
2. 查看镜像
$ docker images
3. 创建Elasticsearch容器
#1、创建Elasticsearch配置文件夹
$ mkdir -p /usr/local/data-docker/elasticsearch/config
#2、创建Elasticsearch数据文件夹
$ mkdir -p /usr/local/data-docker/elasticsearch/data
#3、创建Elasticsearch插件文件夹(如:ik)
$ mkdir -p /usr/local/data-docker/elasticsearch/plugins
#说明:目的将CentOS本地的文件夹映射到Elasticsearch容器,以实现容器数据的持久化到CentOS本地,以及通过CentOS本地文件夹内容的修改同步到容器
$ echo "http.host: 0.0.0.0">>/usr/local/data-docker/elasticsearch/config/elasticsearch.yml
#创建并写入elasticsearch.yml配置,注意:http.host: 0.0.0.0 冒号后有一空格
4. 文件夹赋权
$ chmod -R 777 elasticsearch/
# 需要对 elasticsearch 下属的所有文件进行赋权,负责可能导致镜像运行时报没有访问权限错误
5. 创建宿主机Elasticsearch文件
宿主机也需要有es的文件,与docker容器内的es对应,es的yml配置文件会采用宿主机的配置文件
elasticse