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嘛,我只能露出一个尴尬而不失礼貌的微笑。
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的页面了,就是这么简单。
到这里,我们的基础准备都已经就绪了,你们最喜欢的实操就要到来了。但是是不是有点累了,想走了?