本文主要面向ES的小白入门操作,原理和基础概念不过多介绍,docker基本操作也不过多介绍,针对ES的服务启动、可视化界面和中文分词器的下载进行说明,如果是使用英文分词器,它本身默认就是英文的,可以不用修改。
第三章和第四章两种选一个就行

1. ES容器启动

前提:本地已经下载了ES的镜像文件了
查看已有的镜像命令:

docker images

运行容器命令:

  • 后台运行命令:docker run -d --name elasticsearch-8 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" elasticsearch:8.11.1
  • 前台运行删除 -d ,这样启动的时候可以直接看到日志
  • 或者后台启动后单独开一个终端看日志:docker logs -f elasticsearch-8

2. ES可视化

本文使用的不是PC客户端,而是使用的浏览器插件(感觉下载什么的还是很方便)
在这里插入图片描述

界面:

在这里插入图片描述

新增连接:

在这里插入图片描述
链接输入启动的ES服务就行,一般端口9200.

删除索引的两种方式:

curl -X DELETE "http://localhost:9200/raw_documents"

使用PowerShell:Invoke-WebRequest -Uri "http://localhost:9200/raw_documents" -Method DELETE

3. IK中文分词器安装命令整理(和4两种方法选一种就行)

3.1. 下载IK分词器插件(使用infinilabs官方源)

PowerShell的命令(PowerShell的curl是Invoke-WebRequest的别名,参数不同):

Invoke-WebRequest -Uri "https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.11.1.zip" -OutFile "elasticsearch-analysis-ik-8.11.1.zip"

使用curl:

curl -L -o elasticsearch-analysis-ik-8.11.1.zip https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.11.1.zip

3.2. 将插件复制到Elasticsearch容器

docker cp elasticsearch-analysis-ik-8.11.1.zip elasticsearch-8:/tmp/

在这里插入图片描述

3.3. 在容器内安装插件(会提示确认,输入y)

docker exec -it elasticsearch-8 bin/elasticsearch-plugin install file:///tmp/elasticsearch-analysis-ik-8.11.1.zip

在这里插入图片描述

3.4. 重启Elasticsearch容器以激活插件

docker restart elasticsearch-8

3.5. 验证插件是否安装成功

docker exec -it elasticsearch-8 bin/elasticsearch-plugin list

在这里插入图片描述

3.6. 注意事项

版本匹配:插件版本(8.11.1)必须与Elasticsearch版本完全一致
重启必须:安装插件后必须重启容器才能生效
权限确认:安装时会提示需要额外权限,输入 y 确认

代码配置:
安装完成后启用:

"content": {
    "type": "text",
    "analyzer": "ik_max_word",      # 索引时细粒度分词
    "search_analyzer": "ik_smart"   # 搜索时粗粒度分词
}

使配置生效

# 删除旧索引并重新导入文档
es_store.clear_index()
# 然后重新运行文档导入流程

4.IK中文分词器添加到镜像(和3两种方式选一种就行)

4.1. 写dockerfile

这一块可以看到也是安装插件,命令和3.3一样

FROM elasticsearch:8.11.1

# Install IK analyzer plugin at build time so it is available in the container.
#
# Note:
# - This Dockerfile expects `elasticsearch-analysis-ik-8.11.1.zip` to be present in the build context.
# - After installing the plugin, Elasticsearch needs a restart (we do it by rebuilding/rerunning the container).
COPY elasticsearch-analysis-ik-8.11.1.zip /tmp/elasticsearch-analysis-ik-8.11.1.zip

RUN elasticsearch-plugin install --batch "file:///tmp/elasticsearch-analysis-ik-8.11.1.zip"

4.2. 创建镜像

docker build -t elasticsearch-ik:8.11.1 -f Dockerfile.ik .

4.3. 启动容器

docker run -d --name elasticsearch-8 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" elasticsearch-ik:8.11.1
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐