Meilisearch

Meilisearch

Rust 编写的开源搜索引擎,主打即输即搜与拼写容错

核心功能

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/月,托管版本身并不免费