Weaviate

3周前发布 8 0 0

BSD-3-Clause 许可的开源 AI-native 向量数据库,Go 编写,BM25+向量原生混合检索,模块化向量化器,十亿级毫秒检索。

收录时间:
2026-08-24
WeaviateWeaviate

Weaviate 是 Weaviate Industries 开源的AI-native 向量数据库,BSD-3-Clause 许可,核心引擎用 Go 编写。它把对象数据与向量嵌入统一存储,在单一查询接口中融合向量相似度搜索、BM25 关键字搜索、RAG 生成式搜索与重排 。

官方定位:”The AI database developers love” ——提供 Vector Database、Query Agent、Embeddings、Engram 四大核心能力 。核心差异化:hybrid search 操作符原生融合 BM25 与向量搜索,alpha 参数调节权重(默认 0.75),fusionType 支持 rankedFusion(默认)与 relativeScoreFusion 。它是向量数据库分类中“AI-native + 混合检索原生”的代表作。

 

产品概述

Weaviate 由 Bob van Luijt 等人于 2019 年在阿姆斯特丹创立,核心引擎用 Go 编写,是首批提出”AI-native vector database”理念的向量数据库之一 。官方服务页面描述:”Weaviate is an open-source vector database that simplifies the development of AI applications. Built-in vector and hybrid search, easy-to-connect machine learning models, and a focus on data privacy enable developers of all levels to build, iterate, and scale AI capabilities faster” 。

 

核心定位哲学

官网首页开宗明义——”Design, build and ship complete AI experiences. Vector search, RAG, and memory – all in one open-source platform” 。四个不可妥协的设计原则:

  • AI-native 优先:向量搜索、RAG、Agent memory 是一等公民,而非附加功能
  • 混合检索原生:BM25 + 向量在数据库内核层融合,单一查询接口
  • 模块化向量化器:内置 OpenAI/Cohere/HuggingFace/Google 等向量化模块,无需外部 pipeline
  • 部署无关:自托管、托管云、BYOC 同一引擎,自由切换

 

它做什么 / 不做什么(关键归类):

  • :作为向量数据库服务运行 → 接收对象数据 → 通过模块化向量化器(或用户自带向量)生成嵌入 → 构建 HNSW 索引 → 接收查询 → 在单一接口中执行 pure vector / BM25 / hybrid / multimodal 搜索 → 可选 generative search 调用 LLM 生成答案 → 通过 REST/gRPC/GraphQL 返回
  • 不做:不生成 Embeddings 模型本身(需通过模块化向量化器调用外部模型 API)、不做业务级 Agent 编排(是 Agent 的 retrieval/memory 底座,v1.37 起提供预览版原生 MCP server )
  • 本质是 AI-native 向量数据库:它是向量数据库分类中“混合检索最原生”的代表——hybrid 操作符是数据库内核的一等公民,BM25 与向量搜索的融合算法(rankedFusion / relativeScoreFusion)可在查询层配置 ,而不像某些向量库那样需要应用层手动融合两次查询。

 

技术架构​ :

  • 实现语言:Go(为速度与可靠性而构建)
  • 索引算法:HNSW(Hierarchical Navigable Small World)
  • 搜索操作符
    • 向量搜索:nearVectornearObjectnearText(模块启用时)、nearImage(多模态)
    • 关键字搜索:bm25
    • 混合搜索:hybrid(BM25 + 向量融合)
  • 接口:REST API + gRPC API + GraphQL API
  • 客户端 SDK:Python、JavaScript/TypeScript、Go、Java、C#/.NET
  • 模块化架构
    • Vectorizer Modules:text2vec-openai、text2vec-cohere、text2vec-huggingface、multi2vec-clip(多模态)、multi2vec-bind(多模态)等
    • Generative Modules:generative-openai、generative-anthropic、generative-cohere、generative-google 等
    • Reranker Modules:集成重排模型
  • 部署拓扑​ :
    • 自托管 Dockerdocker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:latest
    • 自托管 Kubernetes:Helm charts,生产推荐路径
    • Embedded Weaviate:实验性,客户端进程内启动本地 Weaviate
    • Weaviate Cloud:Shared(基础设施由 Weaviate 管理)/ Dedicated(单租户集群)
    • BYOC:在客户的 AWS/GCP/Azure VPC 中运行,Weaviate 管理控制面
  • 能力矩阵:十亿级向量毫秒检索 、高级混合搜索与图像搜索、集成 RAG 与重排、原生水平扩展、多租户、复制、细粒度 RBAC、向量压缩(量化与多向量编码)、Object TTL

 

v1.37 关键演进(2026 年 4 月) :

  • 原生 MCP Server(Preview):MCP 兼容客户端可直接查询数据库
  • Diversity Search(MMR Preview):最大边际相关减少结果冗余
  • 可扩展分词器、查询性能分析、增量备份
  • Gemini Audio 支持:multi2vec-google 模块新增 Gemini 音频

 

许可策略:BSD-3-Clause 许可证 ,允许商用、修改、分发,需保留版权声明,是宽松许可阵营,但比 Apache-2.0/MIT 在专利授权方面略弱(未明确包含专利授权条款)。

 

生产验证​ :

  • 客户案例:9B 向量生产部署(某 RAG 客户)
  • 50K+ 租户存储在单一集群(某搜索客户)
  • 42M 向量生产部署,1 天完成企业部署(某银行客户)
  • 200+ 小时数据库维护时间节省

💡 与同层向量数据库的关键差异

  • vs Milvus:Milvus 是 Go/C++ 云原生分布式,主打万亿级规模;Weaviate 是 Go 编写 AI-native 数据库,主打混合检索原生与模块化 AI 能力,十亿级规模毫秒检索
  • vs Qdrant:Qdrant 是 Rust 编写,过滤检索最强、量化降内存极致;Weaviate 是 Go 编写,混合检索原生、模块化向量化器、AI-native 全栈能力
  • vs Vespa:Vespa 是搜索+向量+排序+ML 推理一体化引擎,复杂但强大;Weaviate 专注向量数据库核心,但通过模块化 Vectorizer/Generative/Reranker 模块实现 AI 能力内聚
  • vs Pinecone:Pinecone 是全托管 SaaS(闭源);Weaviate 开源 BSD-3-Clause,自托管/托管云/BYOC 多形态,无供应商锁定
  • vs VikingDB(已收录):VikingDB 是火山/BytePlus 云原生全托管向量数据库,百亿级、多模态、稠密+稀疏混合检索、存算分离;Weaviate 是开源等价物,混合检索原生,自托管可控

 

核心能力

 

-原生混合检索(核心差异化)

  • hybrid 操作符:单一查询同时执行 BM25 与向量搜索
  • alpha 权重调节:0=纯 BM25,1=纯向量,0.75 默认,0.5 均衡
  • 融合算法可选
    • rankedFusion(默认):倒排排名相加融合
    • relativeScoreFusion:归一化分数相加融合
  • bm25SearchOperator:v1.31.0+ 支持配置 BM25 查询 token 匹配阈值
  • 最佳实践:AIMultiple 2026 年 7 月基准测试显示,在 5 万文档医学/技术语料上,Weaviate 的混合融合相较纯向量搜索带来可测量的 +0.030 nDCG 提升

 

-AI-native 模块化

  • Vectorizer Modules:text2vec-openai、text2vec-cohere、text2vec-huggingface、text2vec-google、multi2vec-clip(图文多模态)、multi2vec-bind(多模态)等
  • Generative Modules:generative-openai、generative-anthropic、generative-cohere、generative-google、generative-ollama(本地)
  • Reranker Modules:集成重排模型
  • 自带或外接:既可让 Weaviate 在导入时自动向量化,也可导入预生成向量
  • No external embedding pipeline required:内置向量生成,从文本、图像等直接生成

 

-多模态与命名向量

  • 多模态搜索:依赖 multi2vec-clip、multi2vec-bind 等模块,支持文本↔图像跨模态搜索
  • Named Vectors:同一集合中可配置多个命名向量,查询时指定 target_vector
  • nearText / nearImage / nearObject:模块启用时的多模态查询操作符

 

-集成 RAG 与重排

  • Generative Search:查询时调用配置的 LLM 生成答案,支持 single_prompt(逐对象生成)与 grouped_task(分组任务)
  • Reranking:内置重排能力
  • Query Agent(v1.30+):将自然语言问题自动转化为优化的 Weaviate 查询,无需手动构造查询
  • Translation Agent(v1.30+):用生成模型增强现有对象

 

-生产级可靠性

  • 十亿级毫秒检索:官方基准测试显示十亿级向量毫秒级搜索
  • 原生水平扩展:原生支持水平扩展、多租户、复制
  • 细粒度 RBAC:v1.29/1.30+ 内置 RBAC 系统,可在集合、租户、操作级别钉固权限
  • 向量压缩:向量量化与多向量编码降低内存占用,对搜索性能影响最小
  • Object TTL:按集合配置自动过期与清理陈旧数据
  • 可配置备份:零停机备份
  • 租户隔离:严格资源隔离确保安全
  • v1.34 可观测性:30+ 新监控指标,Prometheus 格式暴露

 

-多形态部署

  • 自托管 Dockerdocker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:latest
  • 自托管 Kubernetes:Helm charts,生产推荐路径
  • Embedded Weaviate:实验性,Python/Node.js 脚本内启动本地进程
  • Weaviate Cloud Shared:基础设施由 Weaviate 管理
  • Weaviate Cloud Dedicated:单租户专用集群
  • BYOC:在客户 AWS/GCP/Azure VPC 中运行,Weaviate 管理控制面
  • 核心引擎一致性:跨部署模式使用相同 Weaviate Database

 

-开发者体验

  • 多语言 SDK:Python、JavaScript/TypeScript、Go、Java、C#/.NET
  • 三协议接口:REST API、gRPC API、GraphQL API
  • Python Client v4pip install -U weaviate-client
  • 快速起步client = weaviate.connect_to_local()

 

-生态集成

  • RAG 框架:LangChain、LlamaIndex、Haystack、Agno
  • 模型提供商:OpenAI、Cohere、Hugging Face、Google 等通过模块系统集成
  • MCP Server(v1.37 Preview):MCP 兼容客户端与编程 Agent 可直接查询
  • Verba:Weaviate 官方 RAG 参考应用

 

优势亮点

  • BSD-3-Clause 许可:宽松许可,允许商用、修改、分发(需保留版权声明)
  • AI-native 设计哲学:Vector search、RAG、Agent memory 是一等公民
  • 混合检索最原生:hybrid 操作符 + alpha 权重 + 双融合算法,单一查询接口完成 BM25+向量融合
  • 模块化向量化器:内置 OpenAI/Cohere/HuggingFace/Google 等,无需外部 embedding pipeline
  • 十亿级毫秒检索:Go 编写的高性能引擎,十亿级向量毫秒级搜索
  • 多模态原生:multi2vec-clip、multi2vec-bind 模块支持文本↔图像跨模态搜索
  • 查询代理(Query Agent):自然语言自动转查询,降低使用门槛
  • 部署无关:自托管/Docker/K8s/Weaviate Cloud/BYOC 同一引擎,自由切换无供应商锁定
  • 企业级多租户:50K+ 租户单一集群生产验证,严格资源隔离
  • 细粒度 RBAC:v1.29+ 内置,集合/租户/操作级权限控制
  • v1.37 原生 MCP Server:MCP 兼容客户端与编程 Agent 可直接查询(Preview)
  • 生产验证充分:9B 向量、42M 向量、50K+ 租户等大规模生产案例
  • SOC 2 Type II 认证:企业级合规,HIPAA 在 Enterprise/Dedicated(AWS)可用
  • ~16.7K GitHub Stars:AI-native 向量数据库社区认知度最高之一
  • 2026 基准优异:AIMultiple 测试 32 并发 worker 下达 8,330 QPS 峰值吞吐,七引擎中最高

 

局限

  • 自己不生成 Embeddings 模型:需通过模块化向量化器调用外部模型 API(OpenAI/Cohere/Google 等),或用户预生成向量导入
  • 超大规模不及 Milvus:Milvus 分布式架构可达万亿级;Weaviate 官方定位十亿级毫秒检索
  • 过滤检索不如 Qdrant 极致:Qdrant 的 HNSW 遍历期过滤在 metadata-heavy 场景召回率与延迟表现更强;Weaviate 的高级过滤在毫秒级响应大型数据集
  • 搜索+排序一体化不如 Vespa:Vespa 内置分布式 ML 模型推理做 relevance ranking;Weaviate 通过 Reranker 模块实现,重排能力依赖外部模块
  • BSD-3-Clause 许可:虽宽松,但相比 Apache-2.0/MIT 未明确包含专利授权条款
  • Python Client v3→v4 破坏性变更:导入结构、对象模型、查询 API 全部改写,迁移需投入
  • Schema-first 设计摩擦:任何元数据结构调整需 schema 迁移,而非简单插入字段
  • GraphQL 查询冗长:复杂查询的 GraphQL 语法较为繁琐
  • 自托管运维负担:K8s 生产部署需要容器编排、复制、集群管理经验
  • 与 Pinecone 对比:Pinecone 全托管零运维但闭源+供应商锁定;Weaviate 开源可控但自托管需运维(或用 Weaviate Cloud)
  • 量化精度权衡:向量压缩(量化与多向量编码)在降低内存的同时对搜索性能有微小影响
  • v1.37 MCP Server 仍为 Preview:生产使用需评估稳定性

 

适用人群

  • AI-native 应用开发者:希望向量搜索、RAG、Agent memory 作为数据库原生能力
  • 混合检索需求方:需要 BM25 精确匹配 + 向量语义理解的 RAG/搜索应用
  • 多模态检索系统:图文跨模态搜索、多模态 RAG
  • 企业多租户 SaaS:需要严格租户隔离的 SaaS 平台(50K+ 租户单一集群验证)
  • 数据主权与合规:金融、医疗、政企等受监管行业,需自托管或 BYOC
  • EU 数据驻留:Weaviate 阿姆斯特丹总部,SOC 2 Type II + HIPAA(AWS)合规
  • RAG 生产系统:需要 hybrid search + generative search + reranking 的统一查询接口
  • Agent 记忆层:v1.37 原生 MCP Server 让 Agent 直接查询数据库
  • 不想供应商锁定:BSD-3-Clause 开源,自托管/托管云/BYOC 自由切换
  • 已有 K8s 基础设施:Helm charts 生产部署

 

安装与部署

 

1. 环境要求

  • Linux x86_64 / ARM64
  • Docker(快速起步)或 Kubernetes(生产)
  • 自托管:单二进制容器,无外部依赖

 

2. Docker 一键启动

# 启动 Weaviate 服务
docker run -p 8080:8080 -p 50051:50051 \
  -e AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true \
  -e PERSISTENCE_DATA_PATH=/var/lib/weaviate \
  cr.weaviate.io/semitechnologies/weaviate:latest

# REST API: http://localhost:8080
# gRPC: localhost:50051

 

3. Python SDK 快速使用

import weaviate
import weaviate.classes as wvc

# 连接本地 Weaviate
client = weaviate.connect_to_local(
    headers={"X-OpenAI-Api-Key": "your-openai-key"}  # 用于内置向量化器
)

# 创建集合(自动向量化)
client.collections.create(
    name="Article",
    vectorizer_config=wvc.config.Configure.Vectorizer.text2vec_openai(),
    generative_config=wvc.config.Configure.Generative.openai()
)

# 插入数据(自动生成嵌入)
collection = client.collections.get("Article")
collection.data.insert({"title": "Hello world"})

# 纯向量搜索
response = collection.query.near_text(
    query="login issues after OS upgrade",
    limit=5
)

# 混合搜索(BM25 + 向量,alpha=0.75 默认)
response = collection.query.hybrid(
    query="login issues after OS upgrade",
    alpha=0.75,
    limit=5
)

# 生成式搜索(RAG)
response = collection.generate.near_text(
    query="login issues after OS upgrade",
    limit=2,
    single_prompt="Summarize this article: {title}"
)

client.close()

 

4. Kubernetes 生产部署

# 使用 Helm charts
# 生产自托管推荐路径
helm repo add weaviate https://weaviate.github.io/weaviate-helm
helm install my-weaviate weaviate/weaviate

# 或参考 GKE 部署教程
# https://cloud.google.com/kubernetes-engine/docs/deploy-weaviate-on-gke

 

5. Weaviate Cloud 全托管

import weaviate
import weaviate.classes as wvc

# 连接 Weaviate Cloud
client = weaviate.connect_to_weaviate_cloud(
    cluster_url="your-cluster-id.weaviate.network",
    auth_credentials=wvc.init.Auth.api_key("your-api-key"),
    headers={"X-OpenAI-Api-Key": "your-openai-key"}
)

# 后续 API 与自托管完全一致

 

6. 混合检索深度配置

# 使用 relativeScoreFusion 替代默认 rankedFusion
response = collection.query.hybrid(
    query="login issues after OS upgrade",
    alpha=0.5,  # BM25 与向量均衡
    fusion_type="relativeScoreFusion",
    limit=5
)

# 配置 bm25 搜索操作符(v1.31.0+)
response = collection.query.hybrid(
    query="error code 404",
    alpha=0.3,  # 偏向 BM25
    bm25_search_operator={
        "minimum_number_should_match": 1
    },
    limit=5
)

 

7. 部署前必检清单

  • 确认仓库位于 github.com/weaviate/weaviate(官方)
  • 许可:BSD-3-Clause ,宽松许可需保留版权声明
  • 严格属于向量数据库分类,“AI-native + 混合检索原生”子类
  • 官方定位:”The AI database developers love”
  • 开发方:Weaviate Industries B.V.(Amsterdam,2019 年创立)
  • 实现语言:Go
  • 最新版本:v1.38.x(2026 年 8 月);v1.37(2026 年 4 月)引入原生 MCP Server Preview
  • 社区规模:~16.7K GitHub Stars
  • 核心能力:
    • 原生混合检索(hybrid 操作符,alpha 权重,rankedFusion/relativeScoreFusion 双融合算法)
    • 模块化向量化器(OpenAI/Cohere/HuggingFace/Google/multi2vec-clip/multi2vec-bind)
    • 多模态搜索(文本↔图像跨模态)
    • Named Vectors(多向量)
    • 集成 RAG(Generative Search)+ Reranking
    • Query Agent(自然语言转查询)
    • 十亿级向量毫秒检索
    • 原生水平扩展、多租户、复制、细粒度 RBAC
    • 向量压缩(量化与多向量编码)、Object TTL
  • 接口:REST API + gRPC API + GraphQL API
  • SDK:Python、JavaScript/TypeScript、Go、Java、C#/.NET
  • 部署形态:自托管 Docker / K8s / Embedded(实验)/ Weaviate Cloud(Shared & Dedicated)/ BYOC
  • 合规:SOC 2 Type II 认证;HIPAA 在 Enterprise/Dedicated(AWS)可用
  • 定价:Free 层 $0(10 万对象);Flex 从 $45/月起;Plus 从 $280/月;Premium 从 $400/月;BYOC 从 ~$1,390/月
  • 自己不生成 Embeddings 模型,需通过模块化向量化器调用外部 API 或导入预生成向量

相关导航