
Meilisearch 轻量级搜索引擎本地部署
比 Elasticsearch 更易用的开源搜索引擎,毫秒级响应、拼写容错、同义词支持,单文件部署。
原文来源:Meilisearch — 开源轻量级搜索引擎,毫秒级查询响应、开箱即用的拼写容错和同义词支持,部署简单如运行一个可执行文件。
如果你需要给产品加搜索功能,但觉得 Elasticsearch 太重、Algolia 太贵,Meilisearch 是一个恰到好处的选择。它提供了现代搜索所需的所有功能——全文检索、过滤、排序、高亮、拼写容错——但部署和配置简单得多。
Meilisearch 是什么
Meilisearch 是一个用 Rust 编写的开源搜索引擎,设计目标是"开发者友好"。它的核心特性包括:
毫秒级响应 — 查询延迟通常在 50ms 以内,比 Elasticsearch 的默认配置快得多。
开箱即用的容错 — 拼写错误自动纠正,"iphnoe" 也能找到 "iphone"。
同义词支持 — 配置 "手机" 和 "移动电话" 为同义词,搜索任一都能匹配两者。
实时索引 — 文档添加后立即可搜索,不需要手动刷新或等待。
单文件部署 — 一个二进制文件(约 30MB),不需要 JVM 或复杂配置。
安装部署
# Linux/macOS
curl -L https://install.meilisearch.com | sh
# 运行
./meilisearch --master-key YOUR_MASTER_KEY或者用 Docker:
docker run -p 7700:7700 -v $(pwd)/meili_data:/meili_data getmeili/meilisearch:latest默认监听 localhost:7700。
索引文档
# 创建索引
curl -X POST 'http://localhost:7700/indexes/products/documents' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_MASTER_KEY' \
-d '[
{"id": 1, "title": "iPhone 15", "description": "最新款苹果手机", "price": 5999},
{"id": 2, "title": "MacBook Pro", "description": "专业级笔记本电脑", "price": 14999},
{"id": 3, "title": "AirPods Pro", "description": "降噪耳机", "price": 1999}
]'搜索
# 简单搜索
curl 'http://localhost:7700/indexes/products/search?q=iphone'
# 带过滤和排序
curl -X POST 'http://localhost:7700/indexes/products/search' \
-H 'Content-Type: application/json' \
-d '{
"q": "手机",
"filter": "price < 10000",
"sort": ["price:asc"],
"limit": 10
}'JavaScript SDK
import { MeiliSearch } from 'meilisearch'
const client = new MeiliSearch({ host: 'http://localhost:7700', apiKey: 'YOUR_MASTER_KEY' })
const index = client.index('products')
// 搜索
const results = await index.search('手机', {
filter: 'price < 10000',
sort: ['price:asc']
})
console.log(results.hits)配置同义词和停用词
# 同义词
curl -X PUT 'http://localhost:7700/indexes/products/settings/synonyms' \
-H 'Content-Type: application/json' \
-d '{
"手机": ["移动电话", " cellphone"],
"笔记本": ["laptop", "电脑"]
}'
# 停用词(不索引的常见词)
curl -X PUT 'http://localhost:7700/indexes/products/settings/stop-words' \
-H 'Content-Type: application/json' \
-d '["的", "了", "是", "the", "a", "an"]'与 Elasticsearch 对比
| 维度 | Meilisearch | Elasticsearch |
|---|---|---|
| 部署复杂度 | 极低 | 高 |
| 学习曲线 | 平缓 | 陡峭 |
| 查询速度 | 毫秒级 | 依赖调优 |
| 容错搜索 | 开箱即用 | 需手动配置 |
| 扩展性 | 中等 | 极强 |
| 生态 | 较小 | 庞大 |
Meilisearch 适合中小型项目的搜索需求,Elasticsearch 适合大规模、复杂查询场景。
总结
Meilisearch 的定位非常清晰:给不需要 Elasticsearch 全部功能的开发者提供一个更简单、更快的替代方案。它的单文件部署、实时索引和开箱即用的容错搜索,让添加搜索功能从"一个大项目"变成了"一个下午就能完成的小事"。
© 2026 四月 · CC BY-NC-SA 4.0
原文链接:https://aprilzz.com/tutorials/meilisearch-local-deployment