未记录事实核验 · 状态:维护中

记录仅说明核验时间与维护状态,不保证适用于所有环境;使用前请留意正文中的版本、适用条件与风险提示。

warning 适用边界与维护说明

本页适合有 Python 基础的读者安排 Weaviate 学习阶段,并选择 AI 应用、生产运维或技术选型方向,但目前不能作为导航完整、环境统一的实操路线:核心概念、部署、建模、查询、运维及 RAG 六个章节仅保留名称,路线 C 所需的选型指南也未提供可定位入口。正文关于相对内存消耗、5000 万向量容量提示、写入吞吐、百亿规模及跨产品能力的比较缺少具体版本、配置和依据,不宜直接用于容量规划或采购决策;开篇对向量化集成的限定也不能替代对照表中“不支持”等结论的核验。Class、模块及 generate 等名称应结合实际服务端、客户端和模型部署条件理解,预计学习时长不代表生产交付能力保证。本次仅作全文结构审阅,未进行外部事实核验或链接可达性测试。 已取消无法确定目标的可点击引用「向量数据库/00-向量数据库选型指南」,保留原提及;Missing link target: 向量数据库/00-向量数据库选型指南 已取消无法确定目标的可点击引用「Milvus/00-Milvus学习路线图」,保留原提及;Missing link target: Milvus/00-Milvus学习路线图 已取消无法确定目标的可点击引用「03-核心概念详解」,保留原提及;Ambiguous link target: 03-核心概念详解 已取消无法确定目标的可点击引用「04-安装与部署」,保留原提及;Ambiguous link target: 04-安装与部署 已取消无法确定目标的可点击引用「07-Schema设计与数据建模」,保留原提及;Ambiguous link target: 07-Schema设计与数据建模 已取消无法确定目标的可点击引用「08-查询与搜索详解」,保留原提及;Ambiguous link target: 08-查询与搜索详解 已取消无法确定目标的可点击引用「09-生产运维与性能调优」,保留原提及;Ambiguous link target: 09-生产运维与性能调优 已取消无法确定目标的可点击引用「10-RAG集成实战」,保留原提及;Ambiguous link target: 10-RAG集成实战 已取消无法确定目标的可点击引用「Qdrant/00-Qdrant学习路线图」,保留原提及;Missing link target: Qdrant/00-Qdrant学习路线图 已取消无法确定目标的可点击引用「向量数据库/通用知识」,保留原提及;Missing link target: 向量数据库/通用知识

Weaviate 学习路线图

abstract 这份路线图能给你什么

  • 学习目标:系统掌握 Weaviate 从核心理念到生产落地的完整技能,重点理解它的 AI-Native 设计哲学
  • 设计理念:沿着"理解设计 → 动手跑通 → 深入原理 → 生产落地"的真实工程路径走
  • 预计时长:总计 15-25 小时,覆盖入门、进阶、生产、专家四个阶段
  • 适用背景:有 Python 基础,想构建 AI 应用(RAG、语义搜索),或想深入理解 AI-Native 数据库设计理念

开篇:Weaviate 是一个自带翻译官的图书馆

想象两种图书馆:

普通图书馆:你想找量子计算的书,你得先知道"量子计算"这几个字,馆员按照书名索引去找。你的意图和图书馆的语言必须完全匹配。这是传统数据库,也是大多数向量数据库——它们只存储和检索,数据的"翻译"工作(把文字变成向量)你得自己搞定。

带翻译官的图书馆:你跟馆员说"我最近对宇宙和微观粒子的关系很感兴趣,想读点相关的",翻译官立刻把你的意图翻译成图书馆能理解的格式,然后帮你找到量子力学、弦理论、宇宙学相关的书,甚至连那本你说不出名字的书也找到了。这就是 Weaviate——它内置了翻译官(Vectorizer 模块),数据进来时自动翻译,查询时自动理解语义。

这条路线重点关注 Weaviate 的一种使用方式:配置相应 Vectorizer 模块后,将向量化与存储检索整合到应用流程中。这一概括不表示其他向量数据库都不具备向量化集成能力,也不表示 Weaviate 无需模型或服务配置就会自动生成向量。

这一句话,是理解 Weaviate 全部设计决策的钥匙。


前置知识要求

在开始 Weaviate 之前,检查一下自己的底子:

前置知识 要求程度 说明
Python 基础 必须 能写类、用 pip、操作字典列表
向量与嵌入概念 推荐 理解"把文本变成向量"是怎么回事,搜索相似性的基本原理
REST API 基础 推荐 Weaviate 的 API 调用方式偏重 HTTP,理解 GET/POST 有帮助
Docker 基础 了解即可 本地部署需要 Docker,知道怎么跑 docker-compose 就够
LLM/OpenAI API 可选 要用 Generative 模块(内置 RAG)时需要,不是必须

推荐先读:

  • 向量数据库选型指南 — 先搞清楚向量数据库这个大方向,理解为什么要用向量数据库
  • Milvus学习路线图 — 如果你对比过 Milvus,理解 Weaviate 的差异点会更清晰

tip 已有 Milvus 或 Qdrant 使用经验?

恭喜你,你已经掌握了向量数据库的通用概念(向量索引、ANN 搜索、元数据过滤)。学 Weaviate 时,重点关注这三个 Weaviate 特有的东西:Schema 的 Class/Property 模型、Modules 系统(这是核心差异)、以及 GraphQL API。其他部分触类旁通。


整体学习路径

%%{init: {"theme":"base","themeVariables":{"fontFamily":"PingFang SC, -apple-system, Source Han Serif SC, serif","fontSize":"16px","background":"#FDFBF5","primaryColor":"#FDFBF5","primaryTextColor":"#2D2A26","primaryBorderColor":"#6E6A60","secondaryColor":"#E8EFE8","secondaryBorderColor":"#8FA890","secondaryTextColor":"#2D2A26","tertiaryColor":"#FDFBF5","tertiaryBorderColor":"#9A9488","tertiaryTextColor":"#6E6A60","lineColor":"#6E6A60","textColor":"#2D2A26","mainBkg":"#FDFBF5","nodeBorder":"#2D5A3D","clusterBkg":"#F3EEDF","clusterBorder":"#9A9488","edgeLabelBackground":"#FDFBF5"},"flowchart":{"htmlLabels":true,"curve":"basis","padding":20,"nodeSpacing":60,"rankSpacing":70,"useMaxWidth":false},"themeCSS":".node rect, .node polygon, .node circle { stroke-width: 1.5px; } .edgePath .path { stroke-width: 1.5px; } .cluster-label .nodeLabel, .cluster-label foreignObject { color: #2D2A26 !important; } .edgeLabel, .edgeLabel foreignObject { color: #2D2A26 !important; background-color: #FDFBF5; } .edgeLabel rect { fill: #FDFBF5; }"}}%%
flowchart TB
    subgraph "阶段一:入门(1-2周)"
        A1["01-Weaviate概述与核心定位<br/>AI-Native设计、Modules系统、GraphQL"]
        A2["02-Weaviate架构深度解析<br/>存储引擎、HNSW、分片机制"]
        A3["03-核心概念详解<br/>Class、Property、Schema、Object"]
        A1 --> A2 --> A3
    end

    subgraph "阶段二:进阶(2-3周)"
        B1["04-安装与部署<br/>WCS云服务 / Docker本地 / 生产集群"]
        B2["05-第一个Weaviate应用<br/>端到端跑通,感受AI-Native"]
        B3["06B-Modules系统与本地部署<br/>text2vec/multi2vec/generative模块"]
        B4["07-Schema设计与数据建模<br/>Class设计、cross-references、多租户"]
        B1 --> B2 --> B3 --> B4
    end

    subgraph "阶段三:生产(3-4周)"
        C1["08-查询与搜索详解<br/>nearText/nearVector/混合搜索/BM25"]
        C2["09-生产运维与性能调优<br/>监控、备份、RBAC、容量规划"]
        C1 --> C2
    end

    subgraph "阶段四:专家(持续深化)"
        D1["10-RAG集成实战<br/>内置Generative模块 / LangChain集成"]
    end

    A3 --> B1
    B4 --> C1
    C2 --> D1

    style A1 fill:#dbeafe,stroke:#3b82f6
    style A2 fill:#dbeafe,stroke:#3b82f6
    style A3 fill:#dbeafe,stroke:#3b82f6
    style B1 fill:#dcfce7,stroke:#16a34a
    style B2 fill:#dcfce7,stroke:#16a34a
    style B3 fill:#dcfce7,stroke:#16a34a
    style B4 fill:#dcfce7,stroke:#16a34a
    style C1 fill:#fef9c3,stroke:#ca8a04
    style C2 fill:#fef9c3,stroke:#ca8a04
    style D1 fill:#fce7f3,stroke:#db2777

四个阶段详解

阶段一:入门(第 1-2 周)

这个阶段的目标只有一个:建立正确的心智模型。Weaviate 的设计哲学和 Milvus/Qdrant 有根本差异,如果带着"向量数据库通用认知"直接上手,容易在 Modules 配置上踩坑。

阶段目标:能说清楚"Weaviate 的 AI-Native 意味着什么",理解为什么它的 Schema 长这个样子,知道 Modules 是做什么的。

文档 核心收获 预计时间
01-Weaviate概述与核心定位 理解 AI-Native 设计、Modules 体系、GraphQL 的选择逻辑 60 分钟
02-Weaviate架构深度解析 搞懂 HNSW 存储、分片、向量索引内部机制 90 分钟
03-核心概念详解 掌握 Class/Property/Object/Tenant 这些 Weaviate 专有概念 60 分钟

note 阶段一的关键问题

读完阶段一,你应该能回答:

  • Weaviate 说自己 "AI-Native",具体体现在哪里?
  • Weaviate 的 GraphQL、REST 和 gRPC API 在这条学习路线中分别承担什么角色?
  • Class 和 SQL 里的 Table 有什么区别?

阶段二:进阶(第 2-3 周)

手不动起来,脑子里的概念都是空的。这个阶段从部署开始,一路跑通第一个真实应用,然后深入 Weaviate 最独特的两个模块:Modules 系统和 Schema 设计。

阶段目标:能独立部署 Weaviate(Docker),能写代码完成数据入库和语义搜索,理解各种 Vectorizer 模块的配置和使用。

文档 核心收获 预计时间
04-安装与部署 三种部署方式(WCS/Docker/Kubernetes)实操 90 分钟
05-第一个Weaviate应用 端到端完成:入库 → 语义搜索 → 看结果 120 分钟
06B-Modules系统与本地部署 text2vec-openai/cohere/transformers、multi2vec-clip、generative 模块全解析 120 分钟
07-Schema设计与数据建模 Class 设计原则、cross-references、多租户隔离策略 90 分钟

tip 进阶阶段的重点提示

第 6 篇 Modules 系统是整个学习路径最重要的一篇——它是 Weaviate 和其他向量数据库的核心差异所在。不要跳过,要读仔细。


阶段三:生产(第 3-4 周)

从"能跑"到"跑得好",这一步很多人跳过了,然后在生产环境踩坑。

阶段目标:理解 Weaviate 的查询机制(包括混合搜索),能处理生产中的常见问题(内存压力、慢查询、权限管理)。

文档 核心收获 预计时间
08-查询与搜索详解 nearText/nearVector/BM25/混合搜索/Reranker 全覆盖 120 分钟
09-生产运维与性能调优 RBAC(v1.28+)、监控指标、备份恢复、容量规划 120 分钟

warning 关于内存消耗

Weaviate 的内存消耗相比 Qdrant 更高,在超过 5000 万向量的场景下需要认真规划容量。第 9 篇会详细讲这个问题。


阶段四:专家(持续深化)

RAG 是 Weaviate 的杀手锏场景。内置 Generative 模块让你不需要外部 LLM 调用框架就能完成检索增强生成。这一篇把 Weaviate 的所有能力整合到一个完整的 RAG 系统里。

文档 核心收获 预计时间
10-RAG集成实战 内置 Generative 模块 RAG、LangChain/LlamaIndex 集成、生产级 RAG 架构 180 分钟

Weaviate 与 Milvus/Qdrant 的概念对照

这是专门为"已经学过其他向量数据库"的人准备的速查表。

通用概念:三者都有,只是叫法不同

概念 Milvus Qdrant Weaviate 说明
数据容器 Collection Collection Class 存储同类向量对象的容器,类似 SQL 的 Table
单条记录 Entity Point Object 一条数据记录
向量字段 Float Vector Field Vector Vector Property 存储高维向量的字段
元数据字段 Scalar Field Payload Property 非向量的结构化字段
索引算法 HNSW/IVF/DiskANN HNSW HNSW 向量近邻搜索算法
ANN 搜索 search() search_points() nearVector/nearText 近似最近邻搜索
混合搜索 Hybrid Search Hybrid Search Hybrid Search 向量搜索 + 关键词搜索
租户隔离 Partition Collection 复制 Tenant(多租户) 逻辑/物理隔离方式

Weaviate 独有:这些是 Weaviate 的专有设计

特性 Weaviate 中的实现 Milvus/Qdrant 中的对应
内置向量化 Modules(text2vec-*) 不支持,需外部 Embedding 服务
Schema 类型系统 DataType(text、int、date...) Milvus 有 Schema,但类型更偏数据库;Qdrant 无固定 Schema
内置 RAG generative-openai/cohere/ollama 不支持,需接入 LangChain 等
GraphQL API 完整 GraphQL 接口 无,均为 REST + gRPC
Cross-references Object 间相互引用(类似外键) 无内置支持
多租户原生设计 Class 级 Tenant,完整隔离 Milvus 用 Partition,Qdrant 用独立 Collection

note Cross-references 是什么

Weaviate 里,一个 Object 可以引用另一个 Class 的 Object,类似数据库里的外键,但更灵活。例如:Article 对象可以引用 Author 对象,查询 Article 时可以直接"穿透"到 Author 的字段。这是关系型思维在向量数据库里的体现,Milvus 和 Qdrant 没有这个能力。

Weaviate 没有但对手有的东西

能力 Milvus Qdrant Weaviate
极致写入吞吐 非常强(云原生分离架构) 强 中等
超大规模(百亿向量) 支持 支持 不推荐
量化压缩(PQ/SQ/BQ) IVF-PQ 三级量化(完整) 部分支持
ACID 事务 部分 部分 部分

三条不同背景的学习路线

根据你的出发点,学习 Weaviate 的侧重点不同:

路线 A:AI 应用工程师(最常见)

你的目标是用 Weaviate 快速构建 RAG 应用或语义搜索服务,不需要深入运维。

01 → 05(直接跑第一个应用)→ 06(Modules 重点看)→ 10(RAG 实战)

跳过:02(架构细节)、09(生产调优)——等真的遇到问题再回来看。


路线 B:后端/数据工程师(生产导向)

你需要在生产环境部署和维护 Weaviate,关注稳定性、性能和成本。

01 → 02(架构要懂)→ 03 → 04(部署实操)→ 07(Schema 设计)→ 09(运维调优)

重点关注:第 9 篇的内存管理和 RBAC(v1.28 新增)。


路线 C:技术选型决策者(对比导向)

你需要在 Weaviate/Milvus/Qdrant 中做选型,快速建立判断。

01(先懂 AI-Native 是什么)→ 选型指南横向对比表 → 05(跑一遍感受)

重点关注:01 中的对比表、Modules 系统的使用成本分析。


Weaviate 的知识图谱

以下是 Weaviate 各概念之间的关系图,帮助你在学习过程中定位自己在哪里:

%%{init: {"theme":"base","themeVariables":{"fontFamily":"PingFang SC, -apple-system, Source Han Serif SC, serif","fontSize":"16px","background":"#FDFBF5","primaryColor":"#FDFBF5","primaryTextColor":"#2D2A26","primaryBorderColor":"#6E6A60","secondaryColor":"#E8EFE8","secondaryBorderColor":"#8FA890","secondaryTextColor":"#2D2A26","tertiaryColor":"#FDFBF5","tertiaryBorderColor":"#9A9488","tertiaryTextColor":"#6E6A60","lineColor":"#6E6A60","textColor":"#2D2A26","mainBkg":"#FDFBF5","nodeBorder":"#2D5A3D","clusterBkg":"#F3EEDF","clusterBorder":"#9A9488","edgeLabelBackground":"#FDFBF5"},"flowchart":{"htmlLabels":true,"curve":"basis","padding":20,"nodeSpacing":60,"rankSpacing":70,"useMaxWidth":false},"themeCSS":".node rect, .node polygon, .node circle { stroke-width: 1.5px; } .edgePath .path { stroke-width: 1.5px; } .cluster-label .nodeLabel, .cluster-label foreignObject { color: #2D2A26 !important; } .edgeLabel, .edgeLabel foreignObject { color: #2D2A26 !important; background-color: #FDFBF5; } .edgeLabel rect { fill: #FDFBF5; }"}}%%
mindmap
  root((Weaviate))
    AI-Native核心
      Modules系统
        text2vec模块
          text2vec-openai
          text2vec-cohere
          text2vec-huggingface
          text2vec-transformers
          text2vec-ollama
        multi2vec模块
          multi2vec-clip
          multi2vec-google
        generative模块
          generative-openai
          generative-cohere
          generative-ollama
        rerank模块
          rerank-cohere
          rerank-transformers
      GraphQL API
      REST API
      gRPC API
    数据模型
      Class
      Property
      Object
      Cross-reference
      Tenant
    存储与索引
      HNSW
      BM25
      混合搜索
      ACORN过滤
    部署模式
      WCS云服务
      Docker单机
      Kubernetes集群
    生产能力
      多租户
      RBAC权限
      备份恢复
      监控指标

学习中的常见误区

在正式开始之前,先了解这几个常见的认知误区,可以帮你少走弯路:

误区一:以为 Weaviate 必须依赖外部 OpenAI API 才能用

Weaviate 的 text2vec 模块支持本地 Hugging Face 模型(text2vec-transformers)和 Ollama 本地模型,完全可以离线使用。OpenAI/Cohere 集成是方便选项,不是唯一选项。

误区二:以为 GraphQL 很难用

Weaviate 的 GraphQL 查询语法相对直观。作为向量数据库的查询接口,它比通用 GraphQL 简单很多,而且 Python/JS 客户端封装了大量常用操作,你不需要手写 GraphQL 查询字符串。

误区三:以为 Weaviate 只适合文本搜索

multi2vec-clip 模块支持图文混合搜索(一个向量空间里存图片和文本),multi2vec-google 支持图文视频多模态。本路线将 Weaviate 的这些多模态模块作为学习对象;是否适合具体场景,需要结合模型支持、部署条件和检索效果判断,这里不作主流产品完整度排名。

误区四:以为内置 RAG 就是全部

内置 Generative 模块(generate.singleResult / generate.groupedResult)确实方便,但 Weaviate 也有完整的 LangChain、LlamaIndex 集成。两种方式不互斥,根据场景选择。


快速定向:你现在在哪里

用这个问题定位你当前的状态:

"我现在对 Weaviate 了解多少?"

  • "完全不知道 Weaviate 是什么" → 从 01-Weaviate概述与核心定位 开始,这是你唯一的起点
  • "知道它是向量数据库,但不知道 AI-Native 是什么意思" → 依然从 01 开始,那篇文档专门解释这个
  • "用过 Milvus,想快速上手 Weaviate" → 看前面的"通用概念对照表",然后从 06B-Modules系统与本地部署 开始
  • "Weaviate 装好了,但不知道该怎么用" → 直接跳到 05-第一个Weaviate应用,动手比看概念更有效
  • "在生产环境遇到性能问题" → 去 09-生产运维与性能调优,那里有专门的排查指南

相关资源与延伸阅读

知识库内相关文档

  • 向量数据库选型指南 — 选型决策框架
  • Milvus 学习路线图 — 对比参照
  • Qdrant 学习路线图 — 对比参照
  • 向量数据库通用知识 — ANN 算法、HNSW 原理等基础内容

官方资源


quote 开始之前的最后一句话

Weaviate 的学习曲线有一个独特的形状:前期有一道坡(理解 AI-Native 和 Modules 系统需要时间),但熟悉之后可能更顺手(若所选模块适配应用需求,构建 AI 应用时可能减少部分集成工作;这里不作跨产品开发速度保证)。这篇路线图就是帮你把前期那道坡走得不那么陡。准备好了吗,出发。