简介:(Elasticsearch)
elasticsearch简称Es, 是位于Elastic Stack核心的分布式搜索和分析引擎。它为所有类型的数据提供近乎实时的搜索和分析。无论您拥有机构化或非结构化的文本、数字数据还是地理空间数据,Es都能以支持快速搜索的方式高效的存储和索引它。其实现原理主要分为以下几个步骤,首先用户将数据提交到Es,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据库,当用户搜索的时候,再根据权重将结果进行排名、打分,并呈现给用户。
再docker容器中部署Es和Kibana
前提:Kibana是用来操作Es的,所以需要将Es容器和Kibana容器进行联通。可以创建一个网络,让他们都在此网络下即可。
1. 创建网络
docker network create es-net
2. 分别拉取镜像:elasticsearch和kibana
这里我们都使用7.17.5版本
docker pull elasticsearch:7.17.5
docker pull kibana:7.17.5
附:如果发现拉去镜像失败,可以参考我另外一篇文章:使用docker来安装nacos,里面有介绍如何配置docker的加速镜像地址,一般可以解决你的问题。
3. 运行Es容器
在运行容器之前,你可以创建两个卷,来映射容器内部的文件,并且赋予权限。
mkdir -p /opt/es/data
mkdir -p /opt/es/data
chmod 777 /opt/es/data
chmod 777 /opt/es/data
执行:docker run -d --name es -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.type=single-node" -v /opt/es/data:/usr/share/elasticsearch/data -v /opt/es/plugins:/usr/share/elasticsearch/plugins --privileged --network es-net -p 9200:9200 -p 9300:9300 elasticsearch:7.17.5
执行:docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://{ip}:9200 \
--network=es-net \
-p 5601:5601 \
kibana:8.17.0
4. 验证
分别访问:
http://{ip}5601