Meilisearch:开箱即用的全文搜索引擎

Meilisearch 在 GitHub 上已经拿到 58K Star 了。

这是一个用 Rust 写的搜索引擎,主打一个字:快。输入关键词,50 毫秒内返回结果,支持拼写纠错、语义搜索、地理位置搜索,还能跟 LangChain 和 MCP 协议直接对接。

正文顶部截图

1、 解决什么问题

做过搜索功能的人都知道,Elasticsearch 功能强但配置重,光是搭建集群、调映射、写查询 DSL 就能折腾好几天。小项目用不上那一套,但又不想用 LIKE 模糊查询糊弄用户。

Meilisearch 的定位就是填这个坑。它不需要预定义 schema,扔进去 JSON 文档就能搜。拼写打错几个字母没关系,它会自动纠错。搜索结果实时更新,不需要等索引重建。

2、 核心能力

混合搜索是它的一个亮点。传统全文搜索靠关键词匹配,语义搜索靠向量理解意图,Meilisearch 把两种方式结合起来,既精确又聪明。

拼写纠错这块做得比较细。不是简单的编辑距离计算,而是根据实际语料做了优化,打错两三个字母照样能找到对的东西。

分面搜索和过滤也是内置的。电商场景里按价格区间、品牌、评分筛选,几行代码就能搞定,不需要额外搭聚合管道。

地理位置搜索原生支持。传入经纬度坐标,按距离排序或者限定范围,附近餐厅、房源这类需求直接用。

多语言方面,对中文、日文、希伯来语这些非拉丁语系做了专门优化,分词效果比通用方案好不少。

README区域截图

3、 怎么用

安装很简单,Docker 一行命令:

docker run -p 7700:7700 getmeili/meilisearch

启动之后,往里面灌数据:

curl -X POST 'http://localhost:7700/indexes/movies/documents' \
  -H 'Content-Type: application/json' \
  --data-binary @movies.json

搜:

curl 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  --data '{"q": "科幻"}'

官方提供了几乎所有主流语言的 SDK:JavaScript、Python、Ruby、Go、Rust、PHP、Java,装上就能用,不需要手写 HTTP 请求。

4、 跟 Elasticsearch 比怎么样

两者定位不同,解决的场景不一样。

Elasticsearch 适合大数据量、复杂聚合、日志分析这些重度场景。Meilisearch 适合应用内搜索、站内检索、电商筛选这类对响应速度和开发效率有要求的场景。

Meilisearch 单机就能跑,资源占用低,不需要运维团队盯着。Elasticsearch 集群化部署之后,配置和调优的复杂度会上升一个量级。

5、 版本和授权

Meilisearch 分两个版本。

社区版(CE)完全开源,MIT 协议,核心搜索功能全在里面,商用也没问题。

企业版(EE)多了分片和 S3 快照流式传输这些高级功能,需要商业授权。非生产环境可以免费试用。

6、 适合谁用

需要在应用里加搜索功能但不想折腾 Elasticsearch 的开发者。

做 RAG 系统、需要给文档加检索层的团队。

产品原型阶段,需要快速验证搜索体验的项目。

中小规模数据量,追求低延迟和简单部署的场景。


Meilisearch 的思路很清晰:搜索这件事不应该成为开发的负担。装上就能用,用上就够快,够用就不换。

模数据量,追求低延迟和简单部署的场景。


Meilisearch 的思路很清晰:搜索这件事不应该成为开发的负担。装上就能用,用上就够快,够用就不换。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐