ByteNoteByteNote

字节笔记本

2026年2月18日

Meilisearch:闪电般快速的 AI 驱动搜索引擎

API中转
¥120

本文介绍 Meilisearch,一个闪电般快速的搜索引擎 API,为你的网站和应用提供 AI 驱动的混合搜索能力。它是一个开源、易用、高性能的搜索引擎,可作为 Elasticsearch 的轻量级替代方案。

项目简介

Meilisearch 是一个开源的搜索引擎,用 Rust 编写,提供即时搜索体验、容错容错搜索和混合搜索功能。它在 GitHub 上已获得 56k+ stars,是近年来最受欢迎的搜索引擎项目之一。

与传统搜索引擎相比,Meilisearch 的特点是开箱即用、配置简单、响应速度极快,特别适合需要快速实现搜索功能的应用。

核心特性

  • 闪电般快速: 毫秒级响应,支持实时搜索
  • 容错搜索: 拼写错误也能找到正确结果
  • 混合搜索: 结合语义搜索和传统关键词搜索
  • AI 驱动: 支持向量搜索和嵌入模型
  • 多语言支持: 内置对多种语言的支持
  • 过滤和排序: 强大的过滤和排序功能
  • 同义词管理: 支持配置同义词提升搜索体验
  • 高亮显示: 自动高亮匹配的关键词
  • 地理搜索: 支持基于地理位置的搜索
  • 多租户: 支持索引级别的访问控制

技术栈

  • 编程语言: Rust
  • 架构: 单机/集群部署
  • 存储: LMDB(Lightning Memory-Mapped Database)
  • API: RESTful API
  • SDK: 官方提供多种语言 SDK

安装指南

使用 Docker 部署

bash
# 运行 Meilisearch
docker run -it --rm \
  -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:latest

使用 Homebrew(macOS)

bash
brew install meilisearch
meilisearch --master-key your_master_key

使用二进制文件

bash
# Linux/macOS
curl -L https://install.meilisearch.com | sh
./meilisearch --master-key your_master_key

快速开始

启动服务

bash
meilisearch --master-key myMasterKey

服务将在 http://localhost:7700 启动。

添加文档

bash
curl \
  -X POST 'http://localhost:7700/indexes/movies/documents' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer myMasterKey' \
  --data-binary '[
    {
      "id": 1,
      "title": "Carol",
      "genres": ["Romance", "Drama"]
    },
    {
      "id": 2,
      "title": "Wonder Woman",
      "genres": ["Action", "Adventure"]
    }
  ]'

执行搜索

bash
curl \
  -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer myMasterKey' \
  --data-binary '{ "q": "carol" }'

使用 JavaScript SDK

javascript
import { MeiliSearch } from 'meilisearch'

const client = new MeiliSearch({
  host: 'http://localhost:7700',
  apiKey: 'myMasterKey'
})

// 添加文档
await client.index('movies').addDocuments([
  { id: 1, title: 'Carol', genres: ['Romance', 'Drama'] },
  { id: 2, title: 'Wonder Woman', genres: ['Action', 'Adventure'] }
])

// 搜索
const results = await client.index('movies').search('carol')
console.log(results.hits)

混合搜索(AI 驱动)

Meilisearch 支持结合传统关键词搜索和语义搜索:

bash
curl \
  -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer myMasterKey' \
  --data-binary '{
    "q": "sci-fi movies about space",
    "hybrid": {
      "semanticRatio": 0.5
    }
  }'

与 Elasticsearch 对比

特性MeilisearchElasticsearch
部署复杂度简单复杂
学习曲线平缓陡峭
资源占用
实时搜索原生支持需要配置
容错搜索内置需要插件
向量搜索内置需要额外模块

应用场景

  • 电商网站: 商品搜索、筛选、排序
  • 文档系统: 知识库、帮助中心搜索
  • 内容平台: 文章、视频搜索
  • SaaS 应用: 为用户提供搜索功能
  • 日志分析: 快速检索日志数据

相关资源

许可证

本项目采用 MIT 许可证开源。

分享: