部署 Meilisearch
轻量搜索引擎,<50ms 搜索、容错和易用 API。
平台进阶
为什么
Meilisearch 是 Elasticsearch 轻量替代 — <50ms 搜索、容错和零配置。Rust 编写,单二进制,易部署。
平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。
何时使用
Elasticsearch 过度的应用搜索用 Meilisearch。日志分析避免(无聚合)。
如何做
1. Docker — getmeili/meilisearch 配 master key
2. 索引 — 建索引,加文档
3. 搜索 — POST /search 配 q + filter
4. 设置 — 可搜索属性、排序规则
5. 同步 — webhook 或 cron 与 DB 同步
6. 认证 — master key 管理,search key 读
7. 快照 — /snapshots 备份
示例
# docker-compose.yml
services:
meili:
image: getmeili/meilisearch:v1
environment:
MEILI_MASTER_KEY: master-key
ports: ["7700:7700"]
volumes: [meilidata:/meili_data]
volumes: { meilidata: }
# 加文档和搜索
curl -X POST localhost:7700/indexes/movies/documents?primaryKey=id -H 'Authorization: Bearer master-key' -d '[{ "id": 1, "title": "Carol" }]'
curl -X POST localhost:7700/indexes/movies/search -H 'Authorization: Bearer search-key' -d '{ "q": "carol" }'
常见问题
- ⚠生产无 master key — Meilisearch 拒绝启动
- ⚠索引不同步 — 无自动 DB 同步,设 webhook/cron
- ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致
最佳实践
- ✓生产始终设 master key — 安全必需
- ✓前端用 search-only API key — 仅搜索非管理
- ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求