网站或应用内容一多,自带 LIKE %关键词% 的数据库查询就不够看了:中文分词差、拼写容错没有、搜「手机壳」匹配不到「手机保护壳」。Meilisearch 是开源的秒级搜索引擎,主打开箱即用的中文分词、模糊匹配和 typo 容错,几十毫秒返回结果。本文记录在雨云 VPS 上部署 Meilisearch 并接进自己项目的过程。
一、Meilisearch 解决什么
核心能力:
- 即时搜索:建好索引后查询在毫秒级,输入即出结果;
- 中文友好:内置分词对中文和拉丁文混合场景支持不错,不用自己接 jieba;
- 容错匹配:拼错一两个字母也能召回,提升体验;
- 轻量:单二进制,内存占用可控,1 核 1G 起步就能跑小库。
和前面写过的 Umami(见 12278)、Plausible(见 12284)不同,那是分析统计,Meilisearch 是「让人找到内容」,属于检索而非度量。
二、环境准备
Meilisearch 官方提供单文件二进制和 Docker 镜像,资源需求低,雨云入门版 1 核 1G 即可起步(入门见 12235)。数据量增大再加内存。
新用户用优惠码 admin01 可享 五折优惠,雨云支持 7 天无理由退款。入口:雨云官网。
三、部署要点与坑
Docker 起一个实例,关键项:
- API Key 分主从:
MASTER_KEY是管理员密钥,用于建索引/改设置;搜索用只给search权限的只读 Key,别把主密钥塞进前端; - 索引要预建:先
POST /indexes建索引,再上传文档,搜索才生效; - 中文分词:默认 tokenizer 对中文可用,若追求更好效果可后续接自定义词典。
踩坑提醒:
- 主密钥别进前端:前端只持 search-only key,主密钥泄露等于把索引管理权交出去;
- 文档字段要设 searchable:上传时指定哪些字段可搜,否则默认行为可能漏字段;
- 重启丢内存索引:Meilisearch 默认把索引放磁盘(dump 机制),但首次没 dump 时重启需重新灌数据,生产配好持久化和定期 dump。
如果你的项目是前面写过的 PocketBase(见 12346),可在其记录上挂 Meilisearch 做全文检索,弥补 SQLite LIKE 的不足;容器编排可用 Portainer(见 12310)统一管理。
四、接入项目
前端用官方 meilisearch-js 客户端,初始化时填只读 key 和 host 即可。典型流程:后台增删改数据时同步 addDocuments/deleteDocument,用户侧直接 search() 拿结果。需要备份可配合 rclone(见 12308)把 data 目录同步到对象存储。
五、典型场景
- 博客/文档站内搜索:代替数据库模糊查询,体验直线提升;
- 电商商品检索:标题+标签混合召回,支持拼写纠错;
- 内部知识库检索:和 Wiki.js(见 12255)配合,把全文检索交给 Meilisearch。
合规提醒
Meilisearch 索引的是你自己的业务数据,需确保被检索内容已取得相应授权、不收录他人享有著作权或包含个人敏感信息的资料;对外提供搜索时同样遵守《网络安全法》内容管理要求。






