雨云搭建 Meilisearch 自托管搜索引擎教程

开源秒级搜索引擎:中文分词友好、模糊匹配与 typo 容错,1核1G 起步
发布于
3

网站或应用内容一多,自带 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 索引的是你自己的业务数据,需确保被检索内容已取得相应授权、不收录他人享有著作权或包含个人敏感信息的资料;对外提供搜索时同样遵守《网络安全法》内容管理要求。

常见问题(FAQ)

中文分词够用吗?
默认 tokenizer 对中文+英文混合场景基本可用,常见搜索词召回没问题;对专业术语召回要求高时再考虑自定义词典。
和 Elasticsearch 比怎么选?
Elasticsearch 功能强、生态大但重;Meilisearch 轻、上手快,适合中小站点即时搜索,不必为轻需求背上 ES 的运维成本。
数据量很大内存不够怎么办?
Meilisearch 支持把部分索引放磁盘,并可通过分索引、限制返回量来控制资源;实在不够就升配或拆分索引。
搜索接口能直接暴露公网吗?
不建议。前端只用只读 search key,且最好在反代层加频率限制,防止被刷;管理接口只对内网开放。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600

用雨云 KVM 云服务器 Docker 部署 Wiki.js + PostgreSQL,搭一个自己托管的私有知识库,文档可接 Git 后端自动备份。含内存调优、反代 HTTPS 与优惠码 admin01 五折。

用雨云 KVM 云服务器 Docker 自建 Plausible 隐私统计,Postgres+事件处理+HTTPS 反代,跟踪代码嵌入网站。含 SECRET_KEY_BASE 坑与优惠码 admin01 五折。

用雨云 KVM 云服务器 Docker 部署 AList,把阿里/天翼/115/本地等存储聚合成一个目录树,支持 WebDAV 挂载。含访客权限、网盘令牌与优惠码 admin01 五折。