docker 安装 es + kibana + ik + 拼音

环境准备

防火墙配置

  • 我们把 9200 和 9300 两个端口,设置为允许对外访问
  • 笔者这边是测试环境,为了防止后续麻烦,直接关闭防火墙
# 查看防火墙状态,running 为运行状态
firewall-cmd --state

# 停用防火墙
systemctl stop firewalld.service

# 禁止防火墙开机自启
systemctl disable firewalld.service

# 查看防火墙状态,是否是running
firewall-cmd --state

创建一个 docker 虚拟网络

-- 创建命令
docker network create --driver bridge --subnet=10.10.0.0/16 --gateway=10.10.0.1 mynet

-- 查看是否创建成功
docker network ls

安装 elasticsearch

创建数据卷目录

# data 存放数据 plugins 存放插件
mkdir /opt/docker/elasticsearch/data
mkdir /opt/docker/elasticsearch/plugins

chmod 777 /opt/docker/elasticsearch/data
chmod 777 /opt/docker/elasticsearch/plugins

运行 ES

docker-compose.yml

版本号:8.1.0

运行模式:单例

设置内存占用:256 MB,这里是自用测试环境,标准环境不设置或者设置为 4G 以上

version: '3'
services:

  elasticsearch:
    image: elasticsearch:8.1.0            # 镜像名
    container_name: es                    # 容器名
    volumes:
      - /opt/docker/elasticsearch/data:/usr/share/elasticsearch/data
      - /opt/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins
    ports:
      - 9200:9200                         # 端口,宿主机:容器
    environment:
      - "discovery.type=single-node"      # 单例
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"  # 内存

networks:
  default:
    external:
      name: mynet

启动命令

第一次运行需要下载镜像,请耐心等待

如果机器性能较差,容器启动的时间也可能比较长,耐心等待一会

docker-compose up -d

监测是否启动成功

浏览器输入 http://ip:9200,如 http://192.168.200.100:9200

出现输入账号密码的弹窗即为安装成功

image-20220314145310870

账号密码

可以看到和低版本相比,这个版本开启了账号密码验证的功能

但是我们并不知道账号密码是多少,这时候我们就需要去重置一下账号密码

# 进入 docker 容器
docker exec -it es bash
cd bin

# 执行重置密码的命令
./elasticsearch-setup-passwords interactive

根据提示,依次设置几个账号的密码,之后我们会用到 下面两个账号

elastic: 操作用户

kibana_system:用于 kibana 连接使用

image-20220314145946190

重置密码后,我们上面的弹框输入账号 elastic 和 密码,返回下面的内容为启动成功

{
  "name" : "9dd8fc6a8a46",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "NtcKAJTdTd6rU-NTzwnrSg",
  "version" : {
    "number" : "8.1.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "3700f7679f7d95e36da0b43762189bab189bc53a",
    "build_date" : "2022-03-03T14:20:00.690422633Z",
    "build_snapshot" : false,
    "lucene_version" : "9.0.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

安装 kibana

运行 kibana

docker-compose.yml

环境变量里的账号为专用账号: kibana_system

version: '3'
services:

  kibana:
    image: kibana:8.1.0                           # 镜像名
    container_name: kibana                        # 容器名
    ports:
      - 5601:5601                                 # 端口,宿主机:容器
    environment:
      - ELASTICSEARCH_HOSTS=http://es:9200        # es 地址
      - SERVER_PORT=5601                          # 端口
      - ELASTICSEARCH_USERNAME=kibana_system      # es 的 kibana 专用账号
      - ELASTICSEARCH_PASSWORD="920619"           # 密码,这里如果是纯数字需要加引号
      - XPACK_REPORTING_ROLES_ENABLED=false
      - XPACK_REPORTING_ENCRYPTIONKEY=xre12345678909876543210
      - XPACK_SECURITY_ENCRYPTIONKEY=xse12345678909876543210
      - XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=xee12345678909876543210

networks:
  default:
    external:
      name: mynet

启动命令

第一次运行需要下载镜像,请耐心等待

如果机器性能较差,容器启动的时间也可能比较长,耐心等待一会

docker-compose up -d

验证是否成功

地址栏输入:http://ip:5601 如 http://192.168.200.100:5601

出现如下界面为安装成功,接下来我们就可以使用 elastic 账号登入进行操作了

image-20220314214832482

安装 IK 分词器

目前 es 自带的分词器对于中文来讲不是那么的友好,所以我们需要安装对中文友好的 ik 分词器

点击下载 ik 分词器

注意是下载第一个文件,下载源码还需要后续配置,不推荐,我们直接下载编译好的就行

image-20220314222817139

将下载好的压缩包上传到 之前运行 es 容器的插件数据卷目录:/opt/docker/elasticsearch/plugins

# 创建分词器目录
cd /opt/docker/elasticsearch/plugins
mkdir ik

# 将压缩包上传到 ik 目录
cd ik
rz

# 解压
unzip elasticsearch-analysis-ik-8.1.0.zip

# 删除压缩包
rm -rf elasticsearch-analysis-ik-8.1.0.zip 

# 重启 es 容器
docker restart es
  • 重启可能需要一定时间,需要耐心等待
  • 等待的过程中我们可以通过查看日志,看看安装是否顺利
# 查看容器日志
docker log -f es

ik 分词器的两种模式

  • ik_smart 最少切分
  • ik_max_word 最细切分

安装拼音分词器

对于后续我们可能会需要自动补全功能,就是在用户输入拼音的时候,就将用户可能查询的结果提示出来供用户选择,这就使需要我们需要一个将汉字转化为拼音的分词器
点击查询拼音分词器
在这里插入图片描述
安装方法也是解压到 plugins 数据卷下,可以参考 ik 分词器的安装,这里不再赘述
拼音分词器的模式:

  • pinyin
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker基于ElasticSearch全文搜索引擎的旅游景点搜索网设计 开发环境: Idea + Mysql + ubuntu + Docker + RabbitMQ + ElasticSearch + kibana 本项目主要是学习利用全文检索引擎框架ElasticSearch实现一个中文旅游网站搜索设计,通过建立一个hotel的索引库关联对应的mysql表数据,实现高效率的查询,解决了传统关系型数据因为数据量大导致的查询瓶颈问题。查询业务是crud中最复杂的业务,涉及到多种条件的组合,查询结果的分页和排序,搜索引擎查询结果的解析;根据查询条件的设置对结果某些信息字段进行聚合分析方便用户的筛选;还有就是试下用户输入查询拼音关键字也可以下拉自动补全功能,这就需要引入拼音分词器以及它和ik分词器的各种组合形成自定义的复合分词器。 项目实现的功能页面不多,主要包括前台用户查询酒店结果和后台管理员对酒店信息添加和维护。其中管理员对酒店维护的时候,因为修改了mysql数据库里面酒店的信息,这样就需要把酒店的最新信息同步到全文搜索引擎中,这里采用了RabbitMQ作为消息中间件实现了它们之间的解耦合。 -------- <项目介绍> 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值