核心功能
Meilisearch 是用 Rust 编写的开源搜索引擎,社区版以 MIT 许可发布。单个二进制启动后监听 7700 端口,通过 REST 接口建索引、写文档和查询,写入走异步任务队列。内置拼写容错、过滤分面、排序、同义词与多语言分词,也支持关键词加语义的混合搜索。
功能亮点
单文件部署
curl 脚本下载单个二进制,执行 ./meilisearch 即可起服务
异步写入队列
添加文档立即返回 taskUid 进队列,查任务状态即可确认索引是否完成
容错检索
查询含错别字仍能命中,响应带 processingTimeMs 便于观测
社区版与企业版
社区版 MIT 可商用,分片和 S3 流式快照属企业版,需要商业协议
适用场景
• 文档站与博客的站内搜索
• 中小型电商的商品搜索与分面
• 应用内联想补全的即输即搜
• 个人项目自建轻量搜索服务
安装配置
bash
cURL 安装脚本(Linux / macOS): curl -L https://install.meilisearch.com | sh ./meilisearch --master-key="aSampleMasterKey" Homebrew(macOS): brew update && brew install meilisearch meilisearch Docker: docker pull getmeili/meilisearch:v1.37 docker run -it --rm -p 7700:7700 -e MEILI_ENV='development' -v $(pwd)/meili_data:/meili_data getmeili/meilisearch:v1.37 APT(Debian / Ubuntu): echo "deb [trusted=yes] https://apt.fury.io/meilisearch/ /" | sudo tee /etc/apt/sources.list.d/fury.list sudo apt update && sudo apt install meilisearch meilisearch Windows 可用 Docker,或从 GitHub Releases 下载对应二进制。
使用方法
javascript
写入文档(把 movies.json 加入 movies 索引):
curl -X POST 'http://localhost:7700/indexes/movies/documents' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer aSampleMasterKey' \
--data-binary @movies.json
返回 taskUid 后查任务状态:
curl -H 'Authorization: Bearer aSampleMasterKey' 'http://localhost:7700/tasks/0'
搜索:
curl -X POST 'http://localhost:7700/indexes/movies/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer aSampleMasterKey' \
--data-binary '{ "q": "botman" }'
JavaScript SDK:
npm install meilisearch
import { MeiliSearch } from 'meilisearch'
const client = new MeiliSearch({ host: 'http://localhost:7700', apiKey: 'aSampleMasterKey' })
client.index('movies').addDocuments(movies)
client.index('movies').search('botman').then((res) => console.log(res))关键指标
尚未核验对标产品,此处只列本工具自身指标,不做对比结论。
指标Meilisearch
价格免费
开源是
上手难度入门
相关工具
优点
- 单个二进制启动即用,不依赖 JVM 或外部数据库,本地两条命令就能跑起来
- 默认开启拼写容错,查询写错字仍能命中,响应自带 processingTimeMs 便于观测
- 官方 SDK 覆盖 JS、Python、PHP、Java、Ruby、Go、C#、Rust、Swift、Dart
- 社区版按 MIT 许可发布,包括商业用途在内都可以自由使用
缺点
- 分片与 S3 流式快照属企业版,受商业许可或 BSL 1.1 约束,未签协议不得用于生产
- 官方仅支持 glibc 2.35+ 的 Linux、macOS 14 及以上和 Windows Server 2022 以上
- 写入是异步任务队列,加完文档要轮询 taskUid 状态才能确认可被检索
- 搜索默认只返回 20 条结果,翻页要显式带 limit / offset 或 page 参数
- Meilisearch Cloud 起价 $20/月,托管版本身并不免费