文章目录
- Meilisearch:一个为搜索速度而生的开源引擎
- 功能覆盖面比想象中广
- 作为 RAG 检索层也很合适
- 两个版本,按需选择
- 接入成本很低
- 需要注意的地方
Meilisearch:一个为搜索速度而生的开源引擎
做过搜索功能的程序员应该都有这个体会:用 Elasticsearch 吧,配置复杂,资源占用大,中小项目有点杀鸡用牛刀;用数据库自带的 LIKE 查询吧,性能和功能又跟不上。Meilisearch 就是来解决这个问题的。
这是一个开源的搜索引擎,用 Rust 写的,核心卖点就一个字:快。官方数据是 50 毫秒内返回搜索结果,实测在合理数据量下确实能做到。部署也简单,下载一个二进制文件,命令行启动就行,不需要 Java 环境,不需要复杂的集群配置。
功能覆盖面比想象中广
很多人以为"快"就意味着功能简陋,但 Meilisearch 的功能列表其实挺长的:
混合搜索:同时支持全文搜索和语义搜索,两个引擎的结果会融合排序。简单说就是既能精确匹配关键词,也能理解"意思相近"的内容。
拼写容错:用户打错字也能搜到结果,这一点对面向普通用户的应用很重要。比如搜"iphon"也能匹配到"iphone"相关的内容。
过滤和分面搜索:支持按字段过滤,还能做分面导航。电商场景下按价格区间、品牌、评分这些维度筛选,都能搞定。
排序:搜索结果可以按任意字段排序,价格从低到高、时间从新到旧,都是一行配置的事。
多语言:支持 20 多种语言,包括中文、日文、希伯来文等。中文搜索的分词效果经过专门优化,比很多同类工具表现好。
地理搜索:能基于地理位置筛选和排序结果,做本地生活类应用会用到。
作为 RAG 检索层也很合适
如果你在做 AI 应用,Meilisearch 作为检索层是不错的选择。它原生支持向量搜索,可以和 LangChain 集成,还提供了 MCP(Model Context Protocol)支持。对话式搜索功能可以让用户用自然语言提问,系统基于搜索结果生成 AI 回答。
这一点在当前 AI 应用井喷的背景下,算是踩对了方向。
两个版本,按需选择
Meilisearch 有社区版和企业版。社区版 MIT 协议,完全免费,包括全文搜索、语义搜索、混合搜索、过滤、排序等核心功能,个人和商业使用都没限制。企业版多了分片和 S3 快照等功能,需要商业授权。
对大多数项目来说,社区版够用了。
接入成本很低
SDK 覆盖了主流语言和框架:JavaScript、Python、Go、Ruby、PHP、Java 等都有。API 设计得比较直白,看一遍文档就能上手。数据导入、创建索引、执行搜索,三步就能跑起来一个基本的搜索服务。
如果不想自己部署,也有 Meilisearch Cloud 可以直接用,注册就能试。
需要注意的地方
Meilisearch 不适合当作通用数据库来用。它的定位是搜索层,数据还是需要从主数据库同步过来。另外在超大数据量(千万级以上)的场景下,表现需要实际压测验证,官方也提供了分片方案来应对这类需求。
还有就是遥测默认开启,收集匿名使用数据。介意的话在配置里关掉就行。
总的来说,如果你的项目需要一个轻量、快速的搜索方案,Meilisearch 值得试试。5.8 万 Star 不是白来的,社区活跃度也说明了它的实际价值。
,Meilisearch 值得试试。5.8 万 Star 不是白来的,社区活跃度也说明了它的实际价值。