Elasticsearch 是一个搜索和分析型数据库
📚 docker 安装
- ES 以单节点模式启动
- 关闭安全认证
- 设置 JVM 内存,这里限制最小/最大堆内存都是 512MB,防止吃太多内存
zsh
docker run -d \
--name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:9.4.0📚 Quick Start
把 ES 想象成一个超级图书馆,每条数据就是书架上的一本书,格式是 JSON,索引就是一个分类书架
🔴 节点 —— ES 也可以集群部署,一台服务器一个节点
🔴 索引 —— ES 的索引相当于 MySQL 的表,是用于归类数据的
🔴 分片(Shard) —— 分片是按照索引来分的,比如 products 索引有 1000 万条数据,拆成 3 个分片,分别存储在 3 台服务器上,这样查询可以并行,3 台同时找,速度是 1 台的 3 倍
🔴 快照 —— 就是备份。把某一时刻的数据打包存起来
- 存到本地磁盘 / S3 / OSS 都行
- 出了问题可以恢复到备份时的状态
- 新手阶段不用管,生产环境才需要定期做
📚 数据结构
- index —— 数据库 / 表
- document —— 一条记录,是 JSON 格式的。同一个 index 里的 document 可以不完全一样,但最好大体结构一致
- field 字段