ElasticSearch 7.x with Springboot 2.3.x - 基础准备

需要补充一些基础知识的小伙伴可前往 -> ElasticSearch 7.x with Springboot 2.3.x - 前言

ES应用场景

ES有很多应用场景,大家最熟悉也最有可能用到的就是搜索引擎、电商商品搜索、用户标签、消息中心、日志查看。下面我们来简单讲讲如何应用:

  • 搜索引擎:好像不用讲什么?因为这背后更多的是算法的差异,有两个特别的点就是停用词与高亮词的使用,停用词就是敏感词,放入敏感词你就搜不到了;

  • 电商商品搜索:电商搜索栏上有一些固定选项用于缩小筛选范围,如手机,可以先选操作系统,选品牌,选屏幕尺寸,价格区间等,通过filter缩小了选择范围,如果要进一步准确,则通过在搜索框输入的关键字搜索想要的商品,然后还能选择根据什么进行排序,如价格、购买最多;

  • 用户标签:一个标签就是一个关键词,我们要通过一个或一组关键词找到一组(个)用户,但是打标签是另一个过程与课题了;

  • 消息中心:从消息检索的角度,与搜索引擎、日志查看差不多;

  • 日志查看:ELK,graylog,这里讲一下graylog,它通过ES检索到消息的ID,再通过ID到mongo中找到原始数据,有一次和某位CTO聊天,说到我们用的graylog进行的日志搜集与查看,他说他知道的,graylog就是一个简化版的ELK嘛,我只能露出一个尴尬而不失礼貌的微笑。

ElasticSearch 7.x with Springboot 2.3.x - 基础准备

ES的安装

这里的安装主要是为了方便本地开发,所以使用了docker,我们不讲解过多生产级关于ES的运维事务,甚至如果你在生产购买云服务都不需要关注其如何安装。

配置Docker环境(基于win10)

  • 安装Docker Desktop Windows

    • 如果遇到启动时提示未开启Hyper-V,在小娜输入Hyper-V;(点击开始输入Hyper-V也可以)
    • 选中启动或关闭windows功能;
    • 找到Hyper-V相关组件开启,重启电脑即可;
  • 配置国内docker hub仓库,否则速度慢还可能拉取失败

    • 在docker/daemon.json中添加内容(也可以直接在Docker dashboard -> Settings -> Docker Engine中修改参数):

    {
    “registry-mirrors”: [“https://registry.docker-cn.com”,“http://hub-mirror.c.163.com”]
    }

  • 重启docker, 可通过 docker info 命令查看刚才配置的镜像地址是否已添加成功。

ES我来了

  • 找到ES的镜像,这里我使用的官方镜像

    • 官方支持很多安装方式,感兴趣的自己 -> 前往选择

    • 在命令行中拉取ES的docker镜像,你能看到拉取的过程
      docker pull docker.elastic.co/elasticsearch/elasticsearch:7.7.1

    • 镜像拉取完以后我们简单的试试镜像能否跑起来(这是一个简单的单节点模式,我们也没有修改其暴露端口及参数)
      docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.7.1

    • 打开浏览器输入 localhost:9200 访问看看,如果是一个如下的json说明你成功了,之所以这里可以使用localhost可以访问是因为虚拟网络为我们做了到容器的映射;

    {
    “name”: “59871db95f53”,
    “cluster_name”: “docker-cluster”,
    “cluster_uuid”: “lyaf9jAYRWCETndmKRPiVw”,
    “version”: {
    “number”: “7.7.1”,
    “build_flavor”: “default”,
    “build_type”: “docker”,
    “build_hash”: “ad56dce891c901a492bb1ee393f12dfff473a423”,
    “build_date”: “2020-05-28T16:30:01.040088Z”,
    “build_snapshot”: false,
    “lucene_version”: “8.5.1”,
    “minimum_wire_compatibility_version”: “6.8.0”,
    “minimum_index_compatibility_version”: “6.0.0-beta1”
    },
    “tagline”: “You Know, for Search”
    }

  • 当然你可能会需要进入容器修改一些参数,可以在容器启动后通过下面命令进入容器,进去以后与你在linux操作没有太多区别,进去后你就可以做一些你爱做的事了,注意安全就好。
    docker exec -i -t {你的容器名} bash

Kibana的安装

  • 在命令行中拉取Kibana的docker 镜像
    docker pull docker.elastic.co/kibana/kibana:7.7.1

  • 启动kibana的镜像(启动的镜像需要找到我们刚才启动的ES镜像)
    docker run --link eager_kare:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.7.1
    这里简单讲一下 --link参数,–link :alias,eager_kare 是我刚才启动的ES容器的名字,冒号后的elasticsearch是kibana容器中配置文件中使用的别名

  • 打开浏览器访问: http://localhost:5601/
    这是你应该可以看到Kibana的页面了,就是这么简单。

ElasticSearch 7.x with Springboot 2.3.x - 基础准备

到这里,我们的基础准备都已经就绪了,你们最喜欢的实操就要到来了。但是是不是有点累了,想走了?

ElasticSearch 7.x with Springboot 2.3.x - 基础准备