Weaviate #

什么是 Weaviate? #

Weaviate 是一个开源的云原生向量数据库,专为大规模向量数据的存储、检索和推理而设计。它使用 Go 语言编写,内置向量化模块,支持 GraphQL 查询语言,是构建 AI 应用的强大基础设施。

核心定位 #

text
┌─────────────────────────────────────────────────────────────┐
│                        Weaviate                              │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  向量存储    │  │  语义搜索    │  │  知识图谱    │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  模块化架构  │  │  GraphQL    │  │  云原生设计  │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
└─────────────────────────────────────────────────────────────┘

Weaviate 解决的问题 #

传统数据库的局限 #

text
传统数据库痛点:

1. 无法处理语义搜索
   关键词匹配无法理解语义关系
   同义词、近义词无法关联

2. 缺乏向量化能力
   需要额外部署 Embedding 服务
   向量生成与存储分离

3. 扩展性差
   大规模向量数据难以水平扩展
   查询性能随数据量下降

Weaviate 的解决方案 #

text
Weaviate 解决方案:

✅ 原生语义搜索:基于向量相似性的智能检索
✅ 模块化向量化:内置多种向量化模块
✅ GraphQL 接口:灵活强大的查询能力
✅ 知识图谱:支持对象间的语义关系
✅ 云原生:Kubernetes 友好,易于部署
✅ 实时更新:支持实时数据增删改

Weaviate 的应用场景 #

1. 语义搜索 #

将文本转换为向量,实现基于语义的文档检索,理解查询意图而非简单关键词匹配。

2. RAG(检索增强生成) #

为大语言模型提供外部知识库,增强生成内容的质量和准确性。

3. 知识图谱 #

利用对象间的交叉引用,构建语义知识图谱,实现关联推理。

4. 推荐系统 #

基于用户和物品的向量表示,实现个性化推荐。

5. 多模态检索 #

支持文本、图像等多种模态的向量化,实现跨模态检索。

文档结构 #

text
Weaviate 文档
├── 基础入门
│   ├── Weaviate 简介
│   ├── 安装与配置
│   ├── 核心概念
│   └── 快速开始
│
├── 核心功能
│   ├── Schema 与 Collection
│   ├── 向量操作
│   ├── 搜索查询
│   └── 对象管理
│
├── 进阶特性
│   ├── 模块与向量化
│   ├── 索引与性能
│   ├── 分布式部署
│   └── 监控与运维
│
└── 实战应用
    ├── 语义搜索
    ├── RAG 应用
    └── 知识图谱

Weaviate vs 其他向量数据库 #

特性 Weaviate Qdrant Pinecone Milvus
开源
自托管
云服务
内置向量化
GraphQL
知识图谱
语言 Go Rust - Go
学习曲线 中等 中等

学习路径 #

text
入门阶段
├── Weaviate 简介
├── 安装与配置
├── 核心概念
└── 快速开始

进阶阶段
├── Schema 设计
├── 向量操作
├── 搜索查询
└── 对象管理

高级阶段
├── 模块配置
├── 索引优化
├── 分布式部署
└── 监控运维

实战阶段
├── 语义搜索应用
├── RAG 系统构建
└── 知识图谱开发

技术特点 #

模块化架构 #

  • 内置多种向量化模块(OpenAI、Cohere、HuggingFace 等)
  • 支持自定义向量化模块
  • 向量化与存储一体化

GraphQL 接口 #

  • 灵活的查询语言
  • 支持复杂过滤和聚合
  • 实时订阅功能

云原生设计 #

  • 原生 Kubernetes 支持
  • 水平扩展能力
  • 高可用架构

语义理解 #

  • 自动向量化
  • 跨模态检索
  • 知识图谱关联

快速示例 #

python
import weaviate

client = weaviate.connect_to_local()

collection = client.collections.create(
    name="Article",
    properties=[
        {"name": "title", "dataType": ["text"]},
        {"name": "content", "dataType": ["text"]},
    ]
)

collection.data.insert({
    "title": "Weaviate 简介",
    "content": "Weaviate 是一个云原生向量数据库..."
})

results = collection.query.near_text(
    query="什么是向量数据库",
    limit=5
)

for item in results.objects:
    print(item.properties["title"])

学习资源 #

下一步 #

现在你已经了解了 Weaviate 的基本概念,接下来学习 Weaviate 简介,深入了解 Weaviate 的详细原理!

最后更新:2026-04-04