Docker 部署 elasticsearch + kibana + 分词器(版本7.7.0)

翟青青
2023-12-01

Docker 部署 elasticsearch + kibana + 分词器

考虑到版本不能过低/过高,且需要搭配使用,所以采用 7.7.0 版本,若采用别的版本应注意各处版本号细节。

相关官方链接:

es 7.7 文档

docker 部署 es 7.7 文档

docker 部署 kibana 7.7 文档

elasticsearch jieba

elasticsearch_ik

自说自话

  • 好像 es 和 kibana 都可以设置账户,后面可以考虑,本篇目前未提及。
  • 本篇只记录结论性的代码等,未涉及原因等。比如为什么“两次”挂载,堆大小怎么设置,开发模式和产品模式的区别等详情可参看另一篇细节

es

  • 第一步当然需要先安装 es,“两次”创建才能成功。以下步骤都要做,且顺序不能错:
# 获取镜像
docker pull elasticsearch:7.7.0
  • 长长的准备工作,必须从 docker 中 cp 出来然后再修改权限。因为 9200 被占用了,所以我用的 9201 端口,在 77 服务器上,就应该是 192.168.14.77:9201,这个一会儿配置 kibana 需要用(因为 kibana 默认链接到 es 默认的 9200。
# 初创容器 名为 eslxd 暂无挂载
docker run -it --name eslxd -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -p 9201:9200 -p 9301:9300 \
elasticsearch:7.7.0

# 本地建立 elasticsearch 从容器中拷贝出来对应文件夹
mkdir elasticsearch
docker cp eslxd:/usr/share/elasticsearch/config /data/lxd/elasticsearch/config
docker cp eslxd:/usr/share/elasticsearch/data/ /data/lxd/elasticsearch/data
docker cp eslxd:/usr/share/elasticsearch/plugins/ /data/lxd/elasticsearch/plugins

# 停止并删掉刚刚的容器 eslxd
docker stop eslxd
docker rm eslxd

# 修改本地 elasticsearch 为最高权限
sudo chmod 777 -R elasticsearch
  • 真正的创建容器和挂载
# 再创容器 名为 eslxd 挂载 3 个文件 分别为 config data 和 plugins
docker run -it --name eslxd -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -p 9201:9200 -p 9301:9300 \
-v /data/lxd/elasticsearch/config:/usr/share/elasticsearch/config \
-v /data/lxd/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/lxd/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.7.0
  • 访问 192.168.14.77:9201 成功

kibana

  • docker 挂载方面类似 es,不再赘述。
docker pull kibana:7.7.0

docker run -d --name kbnlxd -p 5611:5601 kibana:7.7.0

mkdir kibana

docker cp kbnlxd:/usr/share/kibana/config/ /data/lxd/kibana/

docker stop kbnlxd
docker rm kbnlxd

sudo chmod 777 -R kibana
  • 配置 kibana 连接到 9201,kibana 我用的 5611 端口。
cd /data/lxd/kibana/config/
vim kibana.yml
# 修改 host 为前面 es 的端口为 http://192.168.14.77:9201

docker run -d --name kbnlxd  -p 5611:5601  \
-v /data/lxd/kibana/config:/usr/share/kibana/config \
kibana:7.7.0
  • kibana 启动可能需要数十秒,若成功访问 192.168.14.77:5611 即可。

分词器(ik)

  • 未设置分词器之前效果
POST _analyze
{
  "analyzer": "standard",
  "text":     "共和国"
}
{
  "tokens" : [
    {
      "token" : "共",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "<IDEOGRAPHIC>",
      "position" : 0
    },
    {
      "token" : "和",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "<IDEOGRAPHIC>",
      "position" : 1
    },
    {
      "token" : "国",
      "start_offset" : 2,
      "end_offset" : 3,
      "type" : "<IDEOGRAPHIC>",
      "position" : 2
    }
  ]
}
  • 下载对应版本的 ik 分词器并对应放置

打开ik7.7.0链接下载 [elasticsearch-analysis-ik-7.7.0.zip]并解压,将解压后的文件夹放在 elasticsearch 的 plugins 下。

  • 成功之后重启 es
POST _analyze
{
  "analyzer": "ik_smart",
  "text":     "共和国"
}
{
  "tokens" : [
    {
      "token" : "共和国",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 0
    }
  ]
}

 类似资料: