本文代码已提交至Github,有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop
接下来准备讲解商品搜索,商品搜索用到了ES,所以本文先讲解在Docker下搭建ES与ES的可视化工具Kibana。ELK(Elastic+Logstash+Kibana)在之前《分布式专栏》已经讲过,不过环境是在Linux下搭建的,有兴趣的同学可以阅读:
本文目录结构:
l____引言
l____ 1.docker下安装ElasticSearch
l________ 1.1解决跨域问题
l________ 1.2安装IK分词器
l____ 2.docker下安装Kibana
l____ 总结
注意:
1. 虚拟机内存建议在3.5G以上,测试前先关闭虚拟机防火墙!
2. Elasticsearch版本号、Kibana版本号以及IK分词器版本号必须一致!
PS:跑起ES和ElasticSearch占内存3.4G,如下:
Docker的安装教程在本文就不再讲解了,可以参考我之前写的博客《Docker专栏》。下面来讲解在docker下安装ES。
1.调高JVM线程数限制数量(一定要先设置!)
vim /etc/sysctl.conf
# 添加这个
vm.max_map_count=262144
# 保存后执行这个命令
sysctl -p
2.下载ES镜像
docker pull elasticsearch
如果报错如下,参考我的博客解决:https://yanglinwei.blog.csdn.net/article/details/105043400:
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.6.1
5.浏览器访问:http://你的ip:9200/,可以看到访问成功。
1.修改配置,解决跨域访问问题
docker exec -it elasticsearch /bin/bash
cd /usr/share/elasticsearch/config/
vi elasticsearch.yml
在elasticsearch.yml的文件末尾加上:
http.cors.enabled: true
http.cors.allow-origin: "*"
2.保存退出后,重启容器:
exit
docker restart elasticsearch
elasticsearch的版本和ik分词器的版本需要保持一致,不然在重启的时候会失败。ik分词器地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
1.进入容器
docker exec -it elasticsearch /bin/bash
2.下载安装ik分词器
cd /usr/share/elasticsearch/plugins/
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip
exit
docker restart elasticsearch
3.重启ES
exit
docker restart elasticsearch
1.docker 拉取kibana镜像:
docker pull kibana:7.6.1
2.启动kibana
docker run --name kibana --link=elasticsearch:test -p 5601:5601 -d kibana:7.6.1
3.启动耐心等候几分钟,浏览器输入:http://yourip:5601/app/kibana,可以看到Kibana成功启动。
本文主要讲解在Docker下安装ES和Kibana,里面有很多的坑,需要慢慢填。
最后附上几个常用的docker的命令:
查看容器日志:
docker logs -f 容器名
进入容器:
docker exec -it 容器名 /bin/bash
重命名容器:
docker rename 容器名 新容器名
删除容器:
docker rm 容器名
删除镜像:
docker rmi 镜像名