Weaviate 1.40 介绍与选型指南
Weaviate 1.40 介绍与选型指南:官方资料溯源的对象+向量混合存储架构、GraphQL/REST/gRPC 接口与模块化向量化、HNSW 索引与混合检索能力、快速上手与适用限制,以及与 Milvus、Qdrant、pgvector、Chroma 的量化选型对比。
Weaviate 1.40 介绍与选型指南
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方资料溯源(Weaviate 官方文档 docs.weaviate.io、GitHub 官方仓库 weaviate/weaviate 及其 Releases 页),本文不做本地安装与运行实测。
- 版本结论:本次介绍的版本为 Weaviate v1.40 系列最新补丁 v1.40.1(2026-10-13 发布)。注:实查最新稳定已进入 1.40 线(任务提示中的 1.3x 口径以实查为准);仓库已由 weaviate-io 迁移至 weaviate 组织。
1.2 版本依据
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| 最新补丁 | v1.40.1(2026-10-13,"Schema drop and recreate class Fix, Reindex vector dimensions at startup performance improvement") | github.com/weaviate/weaviate/releases/tag/v1.40.1 |
| 代码仓库 | weaviate/weaviate(原 weaviate-io/weaviate,现地址 404、已迁移组织) | github.com/weaviate/weaviate |
| 开源许可 | BSD-3-Clause | 仓库 README/LICENSE |
| GitHub stars | 17k | GitHub 星标徽章(shields.io),2026-10-19 实查 |
| 技术栈 | Go;向量索引 HNSW(另支持 flat/dynamic 等) | 官方文档 |
| 接口 | GraphQL 查询 + REST + gRPC | 官方文档 |
1.3 官方来源清单
二、软件概述
本文介绍的是 Weaviate v1.40(最新补丁 v1.40.1,2026-10-13 发布,BSD-3-Clause 开源)。
Weaviate 是一款云原生向量数据库:同时存储对象(原始数据)与向量(embedding),把向量相似检索、关键词/BM25 过滤、混合检索(hybrid search)、重排序(reranking)与生成式检索(RAG,generative search)统一在一个查询接口中。官方定位的典型用例包括 RAG 系统、语义/图片搜索、推荐、聊天机器人与内容分类。它既支持导入时调用"集成模型"(OpenAI、Cohere、HuggingFace 等,通过模块自动向量化),也支持直接写入外部预计算的向量(官方 README/文档)。
Weaviate 由 Weaviate B.V.(SeMI Technologies)主导,Go 编写、BSD-3 许可发布,GitHub 上拥有 17k stars(2026-10-19 实查,GitHub 星标徽章),提供开源自托管与 Weaviate Cloud(WCD)托管双轨。
三、核心架构
3.1 数据模型
- Collection(类/集合):模式化组织数据,每个对象含业务属性 + 向量;Collection 支持配置向量索引类型与量化压缩(官方文档 schema 章节)。
- 跨引用(cross-reference):对象间可建立类图数据库式的引用关系,检索时可展开(官方文档)。
- 多租户(multi-tenancy):Collection 内按 tenant 隔离数据,面向 SaaS 规模化场景(官方文档)。
3.2 模块化(Modules)
Weaviate 的能力通过模块扩展(官方 model-providers 文档):
- 向量化模块:text2vec-(OpenAI/Cohere/HuggingFace/自托管等)、multi2vec-(多模态);
- 检索增强模块:qna-openai、generative-openai 等 RAG 组件;
- reranker-* 重排序模块与 自定义模块接口。
3.3 检索与索引
- 向量索引默认 HNSW(可配 ef construction/search、最大连接数等参数),另有 flat、dynamic 索引与 pq/bq/sq 等量化压缩选项(官方 vector-index 文档)。
- 混合检索:向量相似 + BM25 关键词,
alpha权重融合,可叠加 reranker(官方 hybrid search 文档)。 - 过滤:属性过滤(where)与向量检索可组合,支持受限与全量两种过滤策略(官方文档)。
3.4 接口与客户端
GraphQL(查询主接口)、REST(schema/批量操作)、gRPC(低延迟客户端通道,50051 端口);官方客户端覆盖 Python/TS/JS、Go、Java 等(官方 API 文档)。
四、功能特性
4.1 检索能力
- 近似最近邻(ANN)+ 属性过滤 + 关键词混合检索 + 重排序 + 生成式拼接(RAG 一条 GraphQL 查询完成)。
- 自动向量化:导入时由集成模块调用模型服务产出 embedding,或 BYOV(自带向量)导入。
4.2 运行与运维
- 单节点 Docker 即可起步;集群模式经 RAFT 一致性组织多副本(官方 cluster 文档)。
- 备份模块(filesystem/S3/GCS 等 backend)、导入批处理(batch)与异步修复能力(官方文档)。
- v1.40.1(2026-10-13)修复 Schema drop/recreate 类问题并优化启动时向量维度重建性能(官方发行说明)。
4.3 部署形态
- 自托管:Docker/Docker Compose/Helm Chart/Kubernetes;
- 托管:Weaviate Cloud(WCD)Serverless/Enterprise(官方站点)。
五、快速上手
以下步骤转述自官方快速上手(https://docs.weaviate.io/weaviate/quickstart ),本文不做本地实测。
5.1 启动实例
官方 quickstart 的 Docker 形态(转述):
docker run -p 8080:8080 -p 50051:50051 \
cr.weaviate.io/semitechnologies/weaviate:1.40.1 \
--host 0.0.0.0 --port 8080 --scheme http
生产形态建议使用官方 docker-compose 配置生成器或 Helm Chart(官方文档)。
5.2 建模与导入(Python 客户端转述)
import weaviate
client = weaviate.connect_to_local() # 连接 localhost:8080
questions = client.collections.get("Question") # 打开/创建集合
questions.data.insert({"question": "...", "answer": "..."}) # 写入对象(含自动向量化模块时)
5.3 查询
- 近邻检索:
near_text/near_vector查询返回相似对象; - 混合检索:
hybrid查询融合 BM25 与向量结果(官方 quickstart 检索示例转述)。 - GraphQL 形态示例(转述):
{ Get { Question { question answer _additional { certainty } } } }。
六、适用场景与限制
6.1 适用场景
- RAG 知识库:文档分块向量化 + hybrid search + generative 模块直连 LLM。
- 语义搜索/推荐:商品、内容、多模态(图+文)检索。
- 多租户 SaaS 向量服务:tenant 隔离 + 水平扩展集群。
- 需要对象与向量同库存取、带 schema 的检索系统(区别于"纯向量索引")。
6.2 限制与注意事项
- GraphQL/模块体系有学习成本;模块依赖外部模型服务,自动向量化会引入外部调用。
- HNSW 内存占用随向量规模线性增长,超大规模需启用量化压缩或分区(官方 compression 文档)。
- 强 ACID 事务语义有限:批量导入为最终一致语义(官方文档口径)。
- 云原生编排(RAFT 集群、备份、修复)参数较多,生产前需按官方运维文档演练;本文未实测。
七、同类选型对比
7.1 候选概览
| 工具 | 定位 | 开源许可 |
|---|---|---|
| Weaviate v1.40 | 对象+向量混合存储,模块化 RAG/混合检索 | BSD-3-Clause |
| Milvus v3.0 | 云原生大规模分布式向量数据库 | Apache-2.0 |
| Qdrant v1.19 | Rust 高性能向量引擎(payload 过滤强) | Apache-2.0 |
| pgvector v0.8 | PostgreSQL 扩展向量检索 | PostgreSQL License |
| Chroma v1.5 | 轻量嵌入式/AI 原生向量库 | Apache-2.0 |
7.2 量化对比(2026-10-19 实查)
| 维度 | Weaviate v1.40.1 | Milvus v3.0.3 | Qdrant v1.19.2 | pgvector v0.8.7 | Chroma v1.5.9 |
|---|---|---|---|---|---|
| GitHub stars | 17k(weaviate/weaviate) | 46k(milvus-io/milvus) | 35k(qdrant/qdrant) | 23k(pgvector/pgvector) | 30k(chroma-core/chroma) |
| 最近发版 | v1.40.1(2026-10-13) | v3.0.3(2026-10-14) | v1.19.2(2026-10-05) | v0.8.7(GitHub 最新 tag,不用 Releases 发布) | v1.5.9(2026-05-05,PyPI 口径) |
| 架构 | Go 单体可起步,RAFT 集群 | 存算分离组件化(依赖 etcd/Pulsar/对象存储) | Rust 单体可起步,raft 集群 | PostgreSQL 内扩展 | 嵌入式/Server 单进程,轻量 |
| 接口 | GraphQL + REST + gRPC | REST/gRPC + SDK | REST/gRPC + SDK | SQL | HTTP + Python/JS SDK |
| 混合检索 | hybrid(BM25+向量+reranker)内置 | 稀疏/稠密混合与函数支持 | sparse/dense + Query API | SQL 组合(tsvector/全文可配) | 基础过滤为主 |
| 典型规模 | 中大规模、SaaS 多租户 | 超大规模(十亿级向量) | 中大规模、过滤密集场景 | 存量 PG 体系、千万级内 | 原型/中小规模 AI 应用 |
(stars 取自 GitHub 星标徽章 shields.io 2026-10-19 实查;版本与日期取自各项目官方 Releases/发布渠道同日实查;许可见各仓库 LICENSE。)
7.3 选型建议
- 需要 schema 化对象+向量同库、内置 hybrid search 与 RAG 模块、多租户:Weaviate 最贴合。
- 十亿级向量、愿意维护较重组件栈换极致扩展:Milvus(参考 《Milvus 3.0 介绍与选型指南》)。
- Rust 技术栈、payload 过滤密集的高性能检索:Qdrant(参考 《Qdrant 1.19 介绍与选型指南》)。
- 数据已在 PostgreSQL、想少引入一套系统:pgvector 扩展最省事(参考 《pgvector 安装与使用指南》)。
- 原型验证、Agent 记忆、中小规模应用快速起步:Chroma(参考 《Chroma 1.5.9 介绍与选型指南》)。
八、参考链接
- 官方文档:https://docs.weaviate.io/
- 快速上手:https://docs.weaviate.io/weaviate/quickstart
- 源码仓库:https://github.com/weaviate/weaviate
- v1.40.1 发行页:https://github.com/weaviate/weaviate/releases/tag/v1.40.1
- 模型接入(模块)文档:https://docs.weaviate.io/weaviate/model-providers
- Milvus 仓库:https://github.com/milvus-io/milvus
- Qdrant 仓库:https://github.com/qdrant/qdrant
- pgvector 仓库:https://github.com/pgvector/pgvector
- Chroma 仓库:https://github.com/chroma-core/chroma