教程·阅读约 2 分钟·
Meilisearch 轻量级搜索引擎本地部署

Meilisearch 轻量级搜索引擎本地部署

比 Elasticsearch 更易用的开源搜索引擎,毫秒级响应、拼写容错、同义词支持,单文件部署。

原文来源:Meilisearch — 开源轻量级搜索引擎,毫秒级查询响应、开箱即用的拼写容错和同义词支持,部署简单如运行一个可执行文件。

如果你需要给产品加搜索功能,但觉得 Elasticsearch 太重、Algolia 太贵,Meilisearch 是一个恰到好处的选择。它提供了现代搜索所需的所有功能——全文检索、过滤、排序、高亮、拼写容错——但部署和配置简单得多。

Meilisearch 是什么

Meilisearch 是一个用 Rust 编写的开源搜索引擎,设计目标是"开发者友好"。它的核心特性包括:

毫秒级响应 — 查询延迟通常在 50ms 以内,比 Elasticsearch 的默认配置快得多。

开箱即用的容错 — 拼写错误自动纠正,"iphnoe" 也能找到 "iphone"。

同义词支持 — 配置 "手机" 和 "移动电话" 为同义词,搜索任一都能匹配两者。

实时索引 — 文档添加后立即可搜索,不需要手动刷新或等待。

单文件部署 — 一个二进制文件(约 30MB),不需要 JVM 或复杂配置。

安装部署

code
# Linux/macOS
curl -L https://install.meilisearch.com | sh
 
# 运行
./meilisearch --master-key YOUR_MASTER_KEY

或者用 Docker:

code
docker run -p 7700:7700 -v $(pwd)/meili_data:/meili_data getmeili/meilisearch:latest

默认监听 localhost:7700

索引文档

code
# 创建索引
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}
  ]'

搜索

code
# 简单搜索
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

code
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)

配置同义词和停用词

code
# 同义词
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 对比

维度MeilisearchElasticsearch
部署复杂度极低
学习曲线平缓陡峭
查询速度毫秒级依赖调优
容错搜索开箱即用需手动配置
扩展性中等极强
生态较小庞大

Meilisearch 适合中小型项目的搜索需求,Elasticsearch 适合大规模、复杂查询场景。

总结

Meilisearch 的定位非常清晰:给不需要 Elasticsearch 全部功能的开发者提供一个更简单、更快的替代方案。它的单文件部署、实时索引和开箱即用的容错搜索,让添加搜索功能从"一个大项目"变成了"一个下午就能完成的小事"。

分享到
微博Twitter

© 2026 四月 · CC BY-NC-SA 4.0

原文链接:https://aprilzz.com/tutorials/meilisearch-local-deployment