Meilisearch —— 闪电般的开源搜索引擎,让你的应用秒变智能搜索

# Meilisearch —— 闪电般的开源搜索引擎,让你的应用秒变智能搜索

## 项目介绍

Meilisearch 是一款用 Rust 编写的轻量级、高性能开源搜索引擎,旨在为任何应用、网站或工作流提供快速、优雅的搜索体验。Meilisearch 兼容 Algolia 等商业搜索服务的 API 设计,但完全免费开源,支持私有化部署,全球星标数超过 5 万。

Meilisearch 可以在 50 毫秒内返回搜索结果,内置错字容忍(typo tolerance)、同义词支持、分面搜索(faceted search)、地理搜索等高级功能,无需复杂配置,开箱即用。同时支持向量搜索(vector search),可结合 AI 实现语义搜索。

## 核心特色功能

**毫秒级响应**:搜索延迟低于 50ms,即便在数百万文档的数据集上依然保持高速。

**错字容忍**:支持自动纠错,如搜索 “pythn” 仍能找到 “Python” 相关内容。

**同义词支持**:可以配置同义词词组,搜索任意一个词时自动匹配其他同义词结果。

**分面搜索**:支持按类别、价格、品牌等维度过滤结果,适用于电商、分类信息等场景。

**地理搜索**:支持按地理位置过滤和排序,可用于附近商家、房产等应用。

**排序规则**:支持按价格、日期、销量等自定义排序。

**向量搜索**:内置向量存储和语义搜索,结合 Embeddings 可实现 AI 驱动的语义匹配。

**全文检索**:支持中文、日文、希伯来文等多语言优化分词。

**RESTful API**:提供完整的 REST API,多语言 SDK 开箱即用,支持 PHP、Python、JavaScript、Go、Rust 等。

**安全策略**:支持 API Key 权限控制、细粒度索引访问控制、多租户 Token 等。

## 安装方式

Meilisearch 提供多种安装方式,最简单的本地部署只需一条命令:

**macOS(Homebrew)**:
“`bash
brew install meilisearch
meilisearch
“`

**Linux/macOS(安装脚本)**:
“`bash
curl -L https://install.meilisearch.com | sh
./meilisearch
“`

**Docker 部署**:
“`bash
docker run -d -p 7700:7700 \
-e MEILI_MASTER_KEY=’your_master_key’ \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch
“`

**直接下载二进制**:
从 GitHub Releases 页面下载对应平台的压缩包,解压后直接运行即可。

## 基本使用

启动 Meilisearch 后,默认监听 http://localhost:7700,可通过浏览器访问控制台(MeiliSearch Dashboard)。

### 创建索引并添加文档

“`bash
curl -X POST ‘http://localhost:7700/indexes’ \
-H ‘Content-Type: application/json’ \
-H ‘Authorization: Bearer your_master_key’ \
–data-binary ‘{
“uid”: “books”,
“primaryKey”: “id”
}’
“`

### 添加文档(JSON 格式)

“`bash
curl -X POST ‘http://localhost:7700/indexes/books/documents’ \
-H ‘Content-Type: application/json’ \
-H ‘Authorization: Bearer your_master_key’ \
–data-binary ‘[
{
“id”: 1,
“title”: “Python 编程:从入门到精通”,
“author”: “张三”,
“category”: “技术”,
“price”: 89.0
},
{
“id”: 2,
“title”: “Rust 实战”,
“author”: “李四”,
“category”: “技术”,
“price”: 119.0
}
]’
“`

### 执行搜索

“`bash
curl ‘http://localhost:7700/indexes/books/search’ \
-H ‘Authorization: Bearer your_master_key’ \
–data-urlencode ‘q=python’
“`

返回结果示例:
“`json
{
“hits”: [
{
“id”: 1,
“title”: “Python 编程:从入门到精通”,
“author”: “张三”,
“category”: “技术”,
“price”: 89.0
}
],
“processingTimeMs”: 2,
“query”: “python”
}
“`

## 配置搜索参数

### 设置可搜索字段

“`bash
curl -X PATCH ‘http://localhost:7700/indexes/books/settings’ \
-H ‘Authorization: Bearer your_master_key’ \
-H ‘Content-Type: application/json’ \
–data-binary ‘{
“searchableAttributes”: [“title”, “author”, “category”]
}’
“`

### 设置过滤条件

“`bash
curl ‘http://localhost:7700/indexes/books/search’ \
-H ‘Authorization: Bearer your_master_key’ \
–data-urlencode ‘q=编程&filter=price < 100' ``` ### 设置同义词 ```bash curl -X PATCH 'http://localhost:7700/indexes/books/settings' \ -H 'Authorization: Bearer your_master_key' \ -H 'Content-Type: application/json' \ --data-binary '{ "synonyms": { "编程": ["程序设计", "开发"], "python": ["python3", "py"] } }' ``` ## 与 LangChain 集成 Meilisearch 可作为 LangChain 的向量存储后端: ```python from langchain_community.vectorstores import Meilisearch from langchain_openai import OpenAIEmbeddings vectorstore = Meilisearch( embedding=OpenAIEmbeddings(), meilisearch_url="http://localhost:7700", api_key="your_master_key", index_name="documents" ) ``` ## 应用场景 1. **电商搜索**:商品名称、描述、品牌的多字段搜索,支持按类目和价格过滤 2. **文档检索**:企业内部知识库、帮助文档的全文检索 3. **内容平台**:博客、新闻网站的标题和内容搜索 4. **AI 应用**:结合 LangChain 做 RAG(检索增强生成)的向量数据库 5. **数据分析平台**:多维度分面搜索,支持复杂过滤和排序 ## 开源协议 Meilisearch 采用 MIT 许可证开源。 ## 相关资源 - 官方文档:https://www.meilisearch.com/docs - GitHub 仓库:https://github.com/meilisearch/meilisearch - 在线体验:https://cloud.meilisearch.com


服务支持:如有兴趣不会搭建,可以联系微信:WRYD6166,开源项目搭建10-50元。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容