项目简介
Meilisearch 是一款以极速搜索体验为核心的开源全文搜索引擎,采用 Rust 语言开发,追求极致性能与开发者友好性。它能在 50 毫秒内返回搜索结果,内置拼写容错、同义词支持、过滤排序、地理搜索等丰富功能,无需复杂配置即可开箱即用。Meilisearch 支持全文搜索与语义搜索的混合模式(Hybrid Search),可处理多语言数据,对中文、日文、希伯来文等语言进行了专门优化。
Meilisearch 在 GitHub 上拥有超过 50k Stars,最新版本为 v1.46.1,提供 RESTful API 和多语言 SDK(Python、JavaScript、Java、Go、PHP、Ruby 等),被全球数千家企业和开发者采用,是 Elasticsearch 的轻量级替代方案。
核心功能
- 混合搜索(Hybrid Search):结合全文搜索与语义向量搜索,兼顾精确匹配与语义理解,获取最相关结果
- 即时搜索(Search-as-you-type):50 毫秒内返回结果,支持输入即搜的流畅体验
- 拼写容错(Typo Tolerance):自动处理用户输入的拼写错误和错别字,仍返回正确结果
- 过滤与分面搜索(Faceted Search):支持按类别、价格、日期等多维度过滤,轻松构建分面导航
- 排序功能:支持按任意字段排序,如价格从低到高、日期从新到旧等
- 同义词支持:配置同义词映射,让"手机"和"电话"搜索到相同结果
- 地理搜索(Geosearch):基于经纬度过滤和排序文档,适合本地生活服务类应用
- 多语言优化:对中文、日文、希伯来文、拉丁语系等语言提供专门优化支持
- 对话式搜索(Conversational Search):支持自然语言提问,结合 AI 生成基于搜索结果的回答
- 个性化搜索:根据用户偏好和行为定制搜索结果排序
- 多租户(Multi-Tenancy):支持 SaaS 场景下的租户数据隔离与个性化搜索
- API 密钥权限管理:细粒度控制不同用户对不同索引的访问权限
- 文档关联(Document Relations):跨索引关联文档,丰富搜索结果展示
- 复制与分片(Replication & Sharding):企业版支持水平扩展,多节点分布式部署
- AI 生态集成:开箱即用支持 LangChain 和 Model Context Protocol(MCP)
- 搜索规则(Search Rules):根据上下文动态调整搜索行为,如促销期间提升特定商品权重
仓库信息
- GitHub 地址:https://github.com/meilisearch/meilisearch
- 官方网站:https://www.meilisearch.com/
- 官方文档:https://www.meilisearch.com/docs/
- 在线演示:https://www.meilisearch.com/docs/resources/demos/playground
- 开发语言:Rust 100%
- 开源协议:MIT License(社区版)
- Stars 数量:50k+
安装方式
方式一:Docker 一键部署(推荐)
docker run -d --name meilisearch \
-p 7700:7700 \
-v /path/to/data:/meili_data \
-e MEILI_ENV=production \
-e MEILI_MASTER_KEY=your_master_key \
getmeili/meilisearch:v1.46.1
Docker Compose 配置:
version: '3.8'
services:
meilisearch:
image: getmeili/meilisearch:v1.46.1
container_name: meilisearch
ports:
- "7700:7700"
volumes:
- ./meili_data:/meili_data
environment:
- MEILI_ENV=production
- MEILI_MASTER_KEY=your_master_key
restart: unless-stopped
方式二:二进制文件安装
# Linux (amd64)
curl -L https://install.meilisearch.com | sh
./meilisearch
# 或从 GitHub Releases 下载对应平台二进制文件
# https://github.com/meilisearch/meilisearch/releases
方式三:源码编译安装
# 需要 Rust 工具链
git clone https://github.com/meilisearch/meilisearch.git
cd meilisearch
cargo build --release
# 编译产物在 target/release/meilisearch
./target/release/meilisearch
方式四:Homebrew 安装(macOS)
brew install meilisearch
方式五:JavaScript / Python 快速集成
# JavaScript SDK
npm install meilisearch
# Python SDK
pip install meilisearch
SDK 与集成工具
Meilisearch 提供丰富的官方 SDK,覆盖主流编程语言和框架:
- JavaScript / TypeScript
- Python
- Java
- Go
- PHP
- Ruby
- Rust
- Swift
- .NET / C#
同时提供 Django、Rails、Laravel、Symfony、Vue.js、React 等框架的集成包。
使用场景
- 电商商品搜索:支持过滤、排序、分面导航,为用户提供流畅的商品查找体验
- 文档知识库搜索:企业内部文档、Wiki、帮助中心的全文检索
- 媒体内容搜索:图片、视频、文章等多媒体内容的语义搜索
- SaaS 多租户搜索:为每个租户提供隔离的搜索数据和个性化结果
- 本地生活服务:基于地理位置的周边商家、房源、服务搜索
- AI 应用检索增强:结合 LangChain 为 LLM 提供实时数据检索能力
与同类产品对比
| 特性 | Meilisearch | Elasticsearch | Algolia | Typesense |
|---|---|---|---|---|
| 开发语言 | Rust | Java | 闭源 | C++ |
| 部署方式 | 自托管/云 | 自托管/云 | 仅云端 | 自托管/云 |
| 开源协议 | MIT | SSPL/Elastic | 闭源商业 | GPL-3.0 |
| 搜索速度 | 极快(<50ms) | 快 | 极快 | 极快 |
| 学习曲线 | 低 | 高 | 低 | 低 |
| 资源占用 | 极低(~50MB) | 高(GB级) | N/A | 低 |
| 中文支持 | 优化支持 | 需插件 | 支持 | 支持 |
| 语义搜索 | 内置混合搜索 | 需额外配置 | 支持 | 支持 |
| 使用成本 | 免费(自托管) | 高资源成本 | 按查询付费 | 免费(自托管) |
| AI 集成 | LangChain/MCP | 生态丰富 | 有限 | 基础 |