◈ DB 选型参考
← 返回首页

Weaviate

AI 数据库

Weaviate 是一个开源的 AI 原生向量数据库:把向量检索、BM25 混合搜索、embedding/重排/生成模型模块和多租户生命周期收进同一个系统,甜蜜点是 RAG 与语义搜索平台,而不是事务主库。

用 AI 深挖这款:
证据等级:官方文档 厂商口径 社区实测 社区共识 待验证

基本信息

  • 产品:Weaviate(AI 原生向量数据库 / AI 搜索平台)
  • 公司:Weaviate(荷兰创立,总部阿姆斯特丹;厂商口径:创立于 2019 年)
  • 实现语言:Go官方文档
  • 许可证:核心开源,BSD-3-Clause(官方仓库 LICENSE;截至本次评审未发现改为 BSL/SSPL 等限制性许可的证据)
  • 评审版本:v1.39(官方博客发布于 2026-08-27;配套 Python 客户端 v4.23.1)官方文档
  • 部署形态:自建(Docker / Kubernetes Helm / 二进制)、Weaviate Cloud(Serverless、Dedicated、BYOC)官方文档
  • 数据模型:Collection(旧称 Class)→ Object(JSON 文档 + 属性)→ 向量(支持 named vectors / 多向量);对象间可建 cross-reference;每个 collection 可配 vectorizer 模块、向量索引类型、距离度量官方文档
  • 主要接口:REST(:8080)、GraphQL、gRPC(:50051;v1.23 起官方推荐高吞吐数据路径走 gRPC)(官方文档;社区实测)
  • 官网:weaviate.io;仓库:github.com/weaviate/weaviate

硬维度(47 项)

1 静态加密 / TDE 查证为无

查证为无——自建 Weaviate 内核没有透明数据加密(TDE)或 KMS 密钥轮换的原生能力,官方文档中没有对应配置项;第三方安全调研仅在托管云部署一侧记录 AES-256 与 BYOK(托管云限定),那是云基础设施层的能力,不是数据库内核 TDE;备份落到对象存储时可用 S3/GCS/Azure 自带的服务端加密,同样不是数据库 TDE。(官方文档无相关配置;第三方安全调研)

2 TLS / 传输加密 部分支持

部分支持——Weaviate Cloud 提供 HTTPS/TLS 终端(HTTP 与 gRPC 均走 443/TLS)(官方文档;社区实测);自建部署的 TLS 终止发生在反向代理/Ingress 层(社区部署普遍用 Nginx/Caddy/Traefik 做 TLS 终止),未找到服务端原生 TLS 监听的官方证据。(社区实测;官方文档部分覆盖)

3 审计 有

有——启用 RBAC 后,Weaviate 自动记录所有授权决策(允许/拒绝、用户、资源、操作),审计日志支持记录源 IP(v1.30 起,AUTHORIZATION_RBAC_IP_IN_AUDIT_LOG_DISABLED 可关);厂商安全文章称同时覆盖认证事件、角色变更与数据访问上下文。日志通过标准 logging 配置输出,可接入集中日志系统。(官方文档;厂商口径)

4 认证与权限 有

有——认证:API Key、OIDC(含 OIDC group 映射角色)、DB 用户(客户端可创建/停用/轮换 key);匿名访问可配置,生产要求关闭。授权:RBAC(v1.28 技术预览、v1.29 起 GA),内置 admin/viewer、部署时 root,支持自定义角色,权限粒度覆盖 collection、object/data、tenant、backup、cluster、role 等,v1.30 起支持按 tenant 过滤 data/tenant 权限;另有不可定制的 admin-list 旧方案(与 RBAC 互斥)。官方文档

5 备份恢复 有

有——备份后端支持 filesystem、S3、GCS、Azure Blob;可按 collection 粒度备份/恢复、查询备份状态、取消进行中的备份与恢复(恢复取消 v1.36 起 GA);v1.34 起支持增量备份;cpu_for_backup 可限制备份对在线流量的资源争抢。注意恢复要求目标 collection 不存在(需先删后恢复)。(官方客户端文档;厂商发布说明)

6 可观测性 有

有——v1.14 起支持 Prometheus 指标并可配 Grafana;v1.34 新增 30+ 指标,覆盖 LSM bucket、WAL 恢复、memtable flush、async replication 等;/v1/nodes 节点状态 API(v1.16 起)可查各节点 shard 分布与健康;支持结构化日志与授权审计日志。(官方发布说明;官方文档)

7 连接模型 有

有——REST(:8080)、GraphQL、gRPC(:50051)三接口并存;gRPC 为高吞吐写入/批量路径推荐通道,客户端支持批量导入与服务端批量(v1.36 起 server-side batching GA);连接池、重试、超时由各官方客户端(Python/TypeScript/Go/Java/C#)处理。明确边界:不是 SQL/ PG wire / Mongo 协议兼容,查询语言是 GraphQL + REST + 聚合/过滤 DSL。官方文档

8 事务与隔离级别 不支持

不支持——Weaviate 不提供多对象 ACID 事务,也没有 READ COMMITTED/SERIALIZABLE 这类 SQL 隔离级别语义;单对象写入是原子的,batch 写入按对象逐个处理、非"全有或全无"(社区共识;第三方对比)。注意不要把"写一致性 ONE/QUORUM/ALL"误读为事务隔离级别——那是副本确认数的可调参数,属于复制维度。(社区共识;官方文档)

9 复制与一致性 有

有——collection 级可配 replication factor;leaderless 复制架构;v1.18 起读写一致性均可调为 ONE/QUORUM/ALL(默认 QUORUM,QUORUM=n/2+1);支持异步复制(async replication,写入更快、持久性语义更弱)与 read-repair;schema/集群元数据自 v1.25 起走 Raft(schema 操作强一致);v1.32 起 shard replica 可在节点间移动。注意:元数据 Raft ≠ 用户数据走 Raft 共识复制。(官方文档;厂商发布说明)

10 扩展方式 有

有——水平扩展:加节点 + 分片(virtual/physical shard;多租户下每 tenant 即独立 shard)+ 提高 replication factor;Cloud Serverless 可自动扩缩。但自建扩容不会自动再均衡:新节点加入不改变既有 shard 所有权,需手动(v1.32 起支持)移动 shard replica 做再均衡;多租户冷热状态机可降低小租户资源占用。官方文档

11 兼容性 部分支持

部分支持——API/SDK 兼容:REST/GraphQL/gRPC 接口稳定,官方客户端覆盖 Python/TypeScript/Go/Java/C#,深度集成 LangChain/LlamaIndex/Haystack/Dify 等生态。但三类不兼容要写清:① 非 SQL/pgwire 协议兼容,别指望把 ORM/SQL 直接搬过来;② 客户端与服务端版本耦合(见"大版本升级");③ vectorizer、距离度量、向量索引类型是建 collection 时的决定,改模型/改度量基本等于重建 collection + 全量重向量化。(官方文档;客户端 changelog;社区共识)

12 许可证与商业模式 有

有——核心自建开源免费(BSD-3-Clause);商业模式三层:Weaviate Cloud(Serverless 按使用量、Dedicated 独立资源、BYOC 落自有 VPC,满足数据驻留)、企业支持包 Assurance(年订阅制,分 Flex/Plus/Premium 档,厂商 PDF 公示过 $95k/$130k/$165k 每年每生产集群——厂商口径、易过期,仅记计量维度不作价格依据)、企业版云高级功能。截至评审未发现 BSL/SSPL 变更证据。(官方仓库 LICENSE;官方定价页;厂商口径)

13 中文资料丰富度 部分支持

部分支持——官方文档为英文,无官方中文文档;中文社区资料以 CSDN/博客教程为主(如《Weaviate REST API:HTTP 接口详细文档》2025-08),多为入门与 RAG 集成内容,深度运维/源码级中文资料少;中文社区体量小于 Milvus、pgvector 等在国内的生态。(社区实测:2026-09-29 中文检索)

14 性能与延迟特征 有

有(与 Milvus 同级讨论;混合检索是特色)。

  • HNSW 为主;BM25+向量混合检索是特色,性能调优看分片与缓存 官方文档。
  • 公开 benchmark 以厂商口径为主,第三方横向对比少 待验证。
  • 多租户/多向量场景的内存规划是主要性能工作 社区共识。

15 合规与认证 部分支持

部分支持(Weaviate Cloud 有 SOC2;开源无)。

  • Weaviate Cloud:SOC2厂商口径厂商口径。
  • 开源版:无官方合规认证,合规责任在部署方 社区共识。

16 成熟度与社区生态 有

有(2019 年前后开源;混合检索见长)。

  • 2019 年前后开源;Weaviate 公司持续融资 社区共识。
  • GitHub stars 万级;模块化(向量化模块可选)是特色 社区共识。
  • 社区规模小于 Milvus,文档与教程持续补齐中 社区共识。

17 标杆用户 有

有(以厂商口径案例为主)。

  • 官方客户案例厂商口径厂商口径。
  • 公开大规模案例少于 Milvus 社区共识。
  • 混合检索场景(知识库/搜索)是主要采用动因 社区共识。

18 生态工具链 部分支持

部分支持(备份 API;第三方工具少)。

  • 备份:备份 API(到 S3/GCS)官方文档。
  • 迁移:各语言客户端+批导入;向量化模块生态(OpenAI/Cohere 等)官方文档。
  • 第三方 CDC/监控工具少于 Milvus 社区共识。

19 云托管与 Serverless 有

有(Weaviate Cloud(Serverless))。

  • Weaviate Cloud:Serverless 按量 官方文档。
  • 开源自建(Docker/k8s)文档完整 官方文档。

20 数据接入与摄入 有

有(Batch 导入 API;向量化可内置)。

  • batch API 批量导入对象;可配 vectorizer 自动向量化 官方文档。
  • 大批量注意 batch size 与超时 社区共识。
  • 已有向量可直接导入跳过向量化 官方文档。

21 外部数据访问 不适用

不适用(无外部表/联邦查询语义)。

  • 无外部数据访问概念 官方文档。

22 CDC 与下游同步 无

无(无 CDC;增量靠客户端)。

  • 无变更日志与 CDC 接口 官方文档。

23 TTL 与数据生命周期管理 无

无(无原生 TTL,需应用层删)。

  • 无原生 TTL 机制,过期对象需应用定时删 待验证。
  • 向量场景 TTL 需求弱 社区共识。

24 在线 DDL 与 Schema 演进 有

有(class 属性可加;无传统 DDL)。

  • 此处的"schema 演进"指 class 定义的变更:property 可随时新增,无锁表概念 官方文档。
  • 已有属性的数据类型不可改,改需重建 class 重导数据 社区共识。
  • class 级配置(如 vectorizer)的在线变更:官方文档无明确说明,按"未找到证据"处理,不做断言 未找到证据。

25 多租户与资源隔离 部分支持

部分支持(multi-tenancy 租户隔离;无资源限流)。

  • 原生 multi-tenancy 按租户分数据,查询自动路由 官方文档。
  • 是数据隔离不是资源 QoS,无 CPU/内存限流 社区共识。

26 跨地域多活 无

无(单区集群;无跨区多活)。

  • 集群按单区设计,无跨 region 多活 待验证。
  • 跨区需求靠备份恢复重建 社区共识。

27 高可用架构与 RTO/RPO 部分支持

部分支持(Raft(1.25+);成熟度待验证)。

  • 1.25+ 引入 Raft 做高可用 官方文档。
  • 相对年轻,生产故障案例少,RTO 数据少 待验证。

28 行级安全与数据脱敏 无

无(查证为无原生行列安全)。

  • Weaviate 无原生 RLS、列级权限与动态脱敏 社区共识
  • 权限到 collection / tenant 级(多租户),行级靠应用层过滤 官方文档
  • API key / OIDC 做身份认证,不含数据面脱敏 官方文档

29 JSON 与半结构化能力 部分支持

部分支持(object 属性;GraphQL 过滤)。

  • 属性支持 object/object[] 类型,GraphQL 可过滤 官方文档。
  • 非文档查询主力 社区共识。

30 全文检索能力 部分支持

部分支持(BM25 关键词混合检索)。

  • BM25 关键词混合检索(hybrid)官方文档。
  • 非传统全文检索引擎 社区共识。

31 存储效率与压缩 有

有(PQ 量化压缩向量+HNSW 优化)。

  • 支持 PQ(乘积量化)压缩向量存储,显著降低 HNSW 索引的内存与磁盘占用。官方文档
  • BQ(二值量化)等选项进一步压缩,适合超大规模向量场景。官方文档
  • 量化以牺牲部分召回精度为代价,需按业务容忍度选择。社区实测

32 开源协议与厂商锁定风险 无

无(BSD-3 开源;云版闭源)。

  • Weaviate 核心采用 BSD-3-Clause 开源,协议宽松,无协议变更黑历史。官方文档
  • Weaviate Cloud 为商业托管版,存在云绑定;自建版功能对等。厂商口径
  • 模块化架构,模型与向量化器可替换,生态开放。社区共识

33 查询优化器与计划稳定性 不适用

不适用(向量检索无传统 CBO)。

  • 无 SQL 优化器;混合搜索(向量+BM25)的融合策略内部启发式 官方文档。

34 参数调优与自治能力 部分支持

部分支持(参数少;HNSW 参数是调优点)。

  • 参数精简,HNSW 的 ef/maxConnections 是调优核心 官方文档。
  • 模块(向量化)选择影响大 社区共识。

35 静默数据损坏防护 未找到证据

未找到证据(未见公开的静默损坏检测机制)。

  • 未找到官方文档描述段/索引文件的 checksum 或损坏自愈流程。待验证
  • 向量索引损坏多表现为召回异常而非报错,排查依赖重建索引。社区共识

36 存储过程/触发器/过程语言 不适用

不适用(向量库无过程语言概念)。

  • 无存储过程/触发器概念(不适用)官方文档。

37 约束与数据完整性 不适用

不适用(向量库无约束概念(不适用))。

  • 无外键/CHECK 概念(不适用)官方文档。

38 分析 SQL 完备性 不适用

不适用(向量库无分析 SQL 概念)。

  • 无 SQL/分析 SQL(不适用)官方文档。

39 被遗忘权与数据擦除 部分支持

部分支持(按ID删除;LSM残留)。

  • 支持按 ID 删除对象,无原生擦除证明 官方文档
  • 底层 LSM 存储的墓碑 / 压缩窗口导致物理残留 社区共识
  • 备份模块的快照保留被删对象历史 社区共识

40 数据血缘与目录集成 无

无(查证为无原生血缘)。

  • 无原生数据血缘 官方文档。

41 存算分离 vs 存算一体 有

有(存算一体:本地盘)。

  • 单机/集群本地盘存储,存算一体 官方文档。

42 多模能力 部分支持

部分支持(向量+对象+BM25 全文+生成式)。

  • 向量+结构化对象+BM25 全文,生成式搜索模块 官方文档。
  • 无图/时序 社区共识。

43 FinOps 成本可观测性 不适用

不适用(自建无计费,成本=硬件+人力自理)。

  • 开源自建无内置计费概念,成本是节点硬件、存储与运维人力。社区共识
  • Weaviate Cloud 托管版按量计费,支持用量视图。厂商口径

44 驱动与多语言生态 有

有(Python/TS/Java/Go 官方客户端)。

  • 官方 Python/TypeScript/Java/Go 客户端 官方文档。
  • GraphQL/REST API 官方文档。

45 物化视图 不适用

不适用(向量库无物化视图概念)。

  • 无物化视图概念(不适用)官方文档。

46 支持跨云 有

有(开源任意云;Weaviate Cloud 多云)。

  • 开源版任意云 K8s 可部署 官方文档。
  • Weaviate Cloud 支持多云 官方文档。

47 热点数据更新能力 部分支持

部分支持(UUID 覆盖写,高频更新压实压力大)。

  • 更新原语是按 UUID 的 upsert(PATCH 合并属性或 PUT 整对象替换),每次写同步更新对象存储、倒排索引、HNSW 图三套存储;无多对象事务,批量写入中已成功的对象不回滚 厂商口径。
  • 同对象并发更新官方未承诺原子语义,实践中以后写覆盖为准(LWW);无冲突报错、无内核重试,顺序保障与重试由应用负责 待验证。
  • 衰减形态是 LSM 压实压力:同一对象高频更新产生大量墓碑与段碎片,历史上频繁更新/删除场景曾触发压实逻辑的数据损坏 bug(v1.14.0 官方修复),说明该路径是已知脆弱点 官方文档。
  • 未找到官方命名或文档化的热点行机制的证据,热点应对靠应用层 待验证。
  • 推荐模式:走批量 API 聚合更新、热点计数器类字段尽量外置;代价是批量编排复杂度,以及更新后向量索引重建带来的查询抖动 社区共识。

招牌能力

  1. 原生混合搜索(Hybrid Search):BM25 与向量检索在同一查询里融合。 是什么:一次查询同时跑 BM25/BM25F 关键词检索和向量近似检索,用 alpha(0=纯关键词,1=纯向量)与 fusion 策略(rankedFusion/relativeScoreFusion)合成最终排序;v1.39 把 Boost API 与 MMR 多样性选择推到 GA。为什么是真本事:语义检索擅长"意思相近",关键词检索擅长产品编号、人名、型号等精确匹配,生产级 RAG 两者缺一不可;Weaviate 把它做进存储引擎而不是应用层胶水。边缘真相:混合≠自动正确——alpha 与 fusion 策略必须用自己的评测集调参;lexical 分数与 vector 分数的分布不一致,简单融合可能让一侧淹没另一侧;分词器、过滤选择率、长短文本都会改变结果。(官方文档;v1.39 发布说明)
  2. 模块生态:把向量化、重排、生成收进数据库 API。 是什么:text2vec-*(OpenAI/Cohere/HuggingFace/AWS/Anthropic/Mistral/本地 transformers/Ollama 等)、generative-*、reranker-*、qna-*、multi2vec-* 模块,collection 建表时声明,写入/查询时数据库自动调模型做 embedding、rerank 乃至 RAG 生成,一次 API 返回 grounded 答案。为什么是真本事:把"切分→向量化→检索→重排→生成"这条 RAG 链路的胶水代码量压到最少,原型到生产最快。边缘真相:embedding/LLM 供应商的故障、限流、涨价、模型升级会直接进入你的数据库读写路径;换 embedding 模型通常意味着维度/向量空间变化,必须全量重向量化+重建索引,这笔迁移成本常被低估;数据会被发往外部模型供应商,形成数据驻留与合规边界;模块也会弃用(如 text2vec-contextionary 在 Python 客户端 4.16.6 被弃用,*-palm 改名 *-google)。(官方文档;客户端 changelog;社区共识)
  3. 多租户:tenant-per-shard 物理隔离 + 冷热生命周期。 是什么:多租户 collection 里每个 tenant 是独立 shard/索引(不是共享索引里加个 tenant_id 过滤),状态机 ACTIVE/INACTIVE/OFFLOADED:冷 tenant 可卸载到对象存储(offload-s3 模块,≥v1.26),访问时再激活;支持 autoTenantCreation/autoTenantActivation。为什么是真本事:SaaS"一人一向量空间"的长尾场景下,冷租户不占内存,厂商口径称单集群可支撑百万级 tenant。边缘真相:物理隔离≠CPU/内存/网络 QoS 完全隔离,大量 ACTIVE 小租户会产生 shard/index 元数据与文件句柄开销;OFFLOADED tenant 首次访问有冷启动延迟(对象存储拉回);tenant not found/tenant is inactive 是最常见的新手坑;RBAC 的 tenant 级权限过滤要同时配对。厂商"无 noisy neighbor"宣传按厂商口径处理,不进入选型依据。(官方文档;厂商多租户架构文章;社区实测)
  4. 向量索引的选择面:HNSW / flat / dynamic / HFresh + 量化矩阵。 是什么:默认 HNSW(efConstruction/maxConnections/查询时 ef 可调);小数据可用 flat 穷举;v1.25 起 dynamic 索引(默认 1 万对象以下 flat、超过自动单向转 HNSW);v1.36 起 HFresh 技术预览(内存 centroid HNSW + 磁盘 LSM postings,面向十亿级);压缩支持 PQ/BQ/SQ/RQ,v1.39 预览 4-bit RQ;过滤检索有 ACORN 策略(v1.27 引入,v1.34 起为新 collection 默认)。为什么是真本事:从原型(flat)到大规模(HNSW+量化)到超大规模(HFresh),索引形态随数据量演进而不必换库。边缘真相:HNSW 的内存公式是硬约束(向量 float32 全驻内存 + 图,vectors×dims×4B×~1.5 量级),内存不足表现是 OOM 而非变慢;提高 ef/efConstruction 换召回要同时付出 CPU、延迟与构建时间;删除/更新带来图维护成本,长期高更新场景图质量会退化;HFresh 仍是 Preview,百毫秒级延迟预期,别当 GA 用。(官方发布说明;社区共识)

深水区

1. 向量索引:HNSW 的内存墙与调参四方权衡

  • 领域:向量索引(ANN)。
  • 机制一句话:Weaviate 默认用 HNSW 图索引做近似最近邻检索,efConstruction/maxConnections 决定建图质量与内存,查询时 ef 决定遍历广度;另有 flat(穷举)、dynamic(flat→HNSW 单向切换)、HFresh(Preview:centroid HNSW 常驻内存、postings 落磁盘 LSM)与 PQ/BQ/SQ/RQ 量化压缩可选。(官方文档;官方发布说明)
  • 推到边缘:HNSW 要求全量向量与图驻内存,内存公式约 向量数×维度×4字节×1.5(含图开销)——1000 万×768 维轻松吃掉 40–50GB+,配小了的表现是 OOM kill 而不是"慢一点"社区共识;调参是四方权衡:ef/efConstruction 拉高→召回升、延迟升、构建时间升、内存升,efConstruction>200 后收益递减;删除/更新会在图中留下"空洞",长期高更新场景图质量缓慢退化,需要周期性重建;强过滤(高选择性 where 条件)会缩小图的可达候选集导致召回下降——这正是 ACORN(v1.27 引入、v1.34 起默认)要解决的问题,它用自适应两跳扩展在过滤稀疏区保持图连通。(官方文档;厂商博客;社区共识)
  • 选型含义:做容量规划先算内存公式再定副本数;十亿级要么接受 HNSW 的内存账单+量化压缩(PQ/BQ 以召回换内存),要么等 HFresh GA——Preview 阶段别把生产押上去;高更新场景把重建/重索引排进运维日历。
  • 来源:官方文档(向量索引配置);v1.36/v1.39 发布说明(HFresh、RQ);社区共识(内存公式与 OOM 表现)。

2. 混合搜索:alpha 不是魔法数字,fusion 是门手艺

  • 领域:混合检索(lexical + vector)。
  • 机制一句话:一次 hybrid 查询同时执行 BM25/BM25F 关键词检索与向量检索,按 alpha 加权并经 fusion 策略(relativeScoreFusion 等)合并排序;v1.39 新增 Boost API(按条件加权)与 MMR 多样性选择并进入 GA。(官方文档;v1.39 发布说明)
  • 推到边缘:混合搜索的正确性完全依赖调参:alpha=0.5 只是起点,不同语料(短商品标题 vs 长文档)最优值差异巨大,必须用自己的评测集(标注 query-doc 对)扫参;BM25 分数与向量距离不在一个量纲,fusion 策略选错会让一方系统性淹没另一方;过滤条件选择率、分词器(尤其 CJK)、长短文本 embedding 质量都会翻转排序;reranker 能救最终相关性,但代价是外部模型调用的尾延迟与成本;v1.39 起自动建 collection 默认使用 named vector default,旧版客户端(如 langchain4j 旧版)读不到 embedding 会静默返回空向量——升级 1.39 必须同步检查客户端。(官方文档;langchain4j 集成文档;社区共识)
  • 选型含义:把混合搜索当"可调的排序系统"而不是"开箱即用的正确答案";立项时就准备评测集与重排预算;1.39 的 named vector 变更是升级检查项。
  • 来源:官方文档(hybrid search);v1.39 发布说明;langchain4j 官方集成文档(1.39 兼容说明)。

3. 模块生态:方便是真的,锁定也是真的

  • 领域:AI 模型集成(vectorizer / generative / reranker)。
  • 机制一句话:服务端以 ENABLE_MODULES 启用模块,collection 建表时声明 text2vec-*/generative-*/reranker-* 等,对象写入与查询时由 Weaviate 直接调用外部(或本地)模型做向量化/重排/生成,RAG 可一次 API 完成"检索+生成"。官方文档
  • 推到边缘:模块把第三方依赖焊进了数据库的数据路径:供应商故障/限流/涨价/模型下线会直接表现为你的写入失败或查询延迟爆炸,需要熔断与降级预案;更换 embedding 模型几乎总是全量重向量化+重建索引(维度或向量空间变了,旧向量直接作废),这笔成本经常超过"换数据库"本身;用了外部模块就等于数据要出境/出内网,数据驻留与合规评审必须前置;模块本身会演进甚至弃用(text2vec-contextionary 在客户端 4.16.6 弃用、*-palm 更名 *-google),升级要跟;想完全避免外发就用本地模块(transformers/Ollama/本地推理),代价是自己扛 GPU 与模型运维。(官方文档;客户端 changelog;社区共识)
  • 选型含义:选模块 = 选供应商锁定策略;生产立项时就要定"换模型预案"(双索引并行切换、回填流水线)与"供应商故障预案"。
  • 来源:官方文档(模块);weaviate-python-client changelog(弃用与更名记录);社区共识。

4. 多租户:物理隔离的 shard 与它的三个状态

  • 领域:多租户架构。
  • 机制一句话:多租户 collection 中每个 tenant 对应独立 shard/索引;tenant 状态机为 ACTIVE(加载服务)/INACTIVE(元数据保留、不占内存)/OFFLOADED(数据卸载到对象存储,需 offload-s3 模块、≥v1.26);支持 autoTenantCreation(写入时自动建 tenant)与 autoTenantActivation。(官方文档;厂商多租户架构文章)
  • 推到边缘:物理 shard 隔离不等于 QoS 隔离——大量 ACTIVE 小租户会产生可观的 shard/index 元数据、文件句柄与内存开销,"租户多但每个很小"依然要压测;OFFLOADED 租户首次访问要从对象存储拉回,有冷启动延迟,对延迟敏感路径要预热或保持 ACTIVE;autoTenantCreation 开着时打错 tenant 名会静默建出空租户,而读不存在的租户会报 tenant not found、读 INACTIVE 租户需先激活——这是新手最高频的坑;RBAC 的 tenant 级权限(v1.30+)必须与 tenant 生命周期一起设计,否则出现"建得出来但读不到"的授权死角;厂商"单集群百万 tenant、9 节点 17 万活跃租户"是厂商口径,可作容量上限参考,不作 SLA 依据。(官方文档;厂商多租户文章;社区实测)
  • 选型含义:长尾 SaaS(海量小租户、活跃度不均)是 Weaviate 多租户最舒服的形状;立项时定好租户冷热策略、命名规范与 RBAC tenant filter,压测要覆盖"十万级租户元数据"而不仅是向量规模。
  • 来源:官方文档(多租户);厂商博客《multi-tenancy architecture》(2025-10);社区实测。

5. 复制、一致性与"脑裂"边界:leaderless + 可调一致性

  • 领域:分布式复制与一致性。
  • 机制一句话:collection 级 replication factor 做 leaderless 复制;v1.18 起读写一致性均可调 ONE/QUORUM/ALL(默认 QUORUM=n/2+1),可配异步复制提速;schema 与集群元数据自 v1.25 起走 Raft 强一致;v1.32 起 shard replica 可在节点间移动以利再均衡。官方文档
  • 推到边缘:可调一致性是"确认数"游戏:ONE 写 + ONE 读最快但可能读到旧副本,官方给出的最小最终一致组合是 QUORUM/QUORUM、ONE/ALL、ALL/ONE 三选一,配错组合会在节点故障时读到分歧——社区有人实测过用 consistency_level=ONE 在隔离副本上读出不一

致的数据社区实测;异步复制下副本分歧窗口更大,依赖 read-repair 收敛;GraphQL 历史上固定走 ONE(v1.17 及更早),老版本混用接口要注意语义差;schema 操作走 Raft 强一致,但用户数据复制不走 Raft,别把"元数据强一致"脑补成"全库线性一致"。(官方文档;社区实测)

  • 选型含义:默认 QUORUM/QUORUM 是平衡起点;对"写后立即可读"有硬要求的链路用 ALL 写或读时指定 QUORUM/ALL,并接受延迟代价;多副本集群的混沌测试要覆盖副本分歧与修复。
  • 来源:官方文档(replication / consistency);v1.18 发布说明;社区实测(replica-recall-divergence 研究)。

客户经验

本区内容主要基于厂商口径与媒体转述,独立社区验证不足,引用时请打折。

内核 过滤优先的混合检索架构——AllowList + ACORN + 原生 BM25

一句话
把元数据过滤做进检索执行路径(而非事后裁剪),向量 + BM25 + 过滤三路同查同约束——"过滤定义结果正确性"场景下机制最完整的向量库。Qdrant 是"过滤很强的向量库",Weaviate 是"为过滤设计的检索引擎"。
窄场景
企业 RAG / 电商搜索 / 工单系统,查询同时需要"语义相关 + 关键词精确命中(如产品型号、错误码、人名)+ 结构化过滤(租户、权限标签、价格区间、日期窗口)";1M–50M 向量;检索质量=产品正确性的团队,不愿自建"ES 管关键词 + 向量库管语义 + 手写融合层"的三件套。典型画像:SaaS 客服知识库、金融研报检索。
机制
**AllowList 机制**:属性过滤先走倒排索引(roaring bitmap)解算为"允许出现的对象 ID 集合",这个 AllowList 同时约束向量检索、BM25 检索、hybrid 检索——过滤发生在排序完成之前,对比 post-filter(先 ANN 取 Top-K 再删,后者在高选择性过滤下会返回不足或错过全局最优)。**ACORN 自适应过滤遍历**(v1.27 引入,v1.34 起为新 collection 默认):解决 HNSW 在"过滤与查询向量低相关"时的硬骨头——语义最近的图区域可能全是被过滤掉的对象;ACORN 对不满足过滤的对象跳过距离计算,用 two-hop expansion 穿过"无效区域"快速到达符合过滤的图区域,并在 layer 0 播种额外的符合过滤的入口点,无需重建索引(不改变 HNSW 图结构)。**flat-search cutoff**:AllowList 小到一定程度时直接跳过 HNSW、对候选集暴力搜索——图遍历的 overhead 在小候选集上是纯浪费,这个自适应切换是工程成熟度的标志。**原生 BM25 + hybrid**:alpha 参数可调的向量/BM25 融合,modules 内置 reranker 与 vectorizer(一行配置接 embedding 模型)。
生产验证
Finster AI(金融文档 AI):生产运行 **4200 万向量**,单租户/多租户混合部署满足银行客户数据隔离;与 Weaviate 团队合作做 hot/warm/cold 存储与量化成本优化——连标杆客户都需要厂商手把手做成本优化,侧面印证内存/成本是真实痛点(厂商发布的具名案例,有客户实名 quote,https://weaviate.io/case-studies/finster)。DocsBot 的检索栈:语义 + hybrid search 承载一年 610 万+ 问题的 RAG(https://weaviate.io/case-studies/docsbot)。HN 社区技术讨论(2023,"On Hybrid Search with Qdrant"):Weaviate 员工实名论证 hybrid search 的价值(zero-shot、out-of-domain、continual learning),Qdrant 团队当时反对在向量库内做 hybrid——历史证明 Weaviate 的路线被市场接受,Qdrant 后来也原生支持了 hybrid(https://news.ycombinator.com/item?id=35053133,社区讨论,但立场有厂商员工参与,需知晓)。诚实备注:ACORN 官方博客给出的"低相关过滤场景最高 10x 提升"是厂商口径,未见独立复现,此处仅记录机制存在性(https://github.com/weaviate/weaviate-io)。**独立第三方实测缺失**——这是本招牌最诚实的短板;Medium 营销号矩阵(anjalichaursiya / anjalirajawat / yogitakushwah,2026-07/08)的任何结论性断言均未计入验证,仅借其技术描述做机制交叉核对。
竞品差距
vs qdrant:最接近的对手——Qdrant 的 payload 过滤 + 稀疏/稠密 RRF 在"向量+过滤" workload 上延迟更低、内存更省;但 Qdrant 的稀疏向量需要自建 BM25/SPLADE pipeline(IDF 过期是生产坑),Weaviate 的 BM25 是原生的、且 AllowList 同时约束三路;vs pgvector:pgvector 的过滤是 SQL WHERE + post-filter 语义,高选择性下结果不足,hybrid 要手写 tsvector + RRF,机制代差;vs milvus:Milvus 2.4+ 有标量索引但过滤是表达式后挂,无 AllowList 这类"过滤即执行路径"的设计。31 款里,"过滤+BM25+向量三路一体、过滤参与执行"这个完整度是 Weaviate 独占。
证据等级
官方文档/博客(机制)+ 厂商具名案例(Finster、DocsBot,数字为厂商发布口径)+ 社区讨论(HN);独立第三方实测缺失,已降级标注
最后核验
2026-10-01

生态 多租户 SaaS 的租户分片隔离——5 万租户单集群

一句话
collection 内 per-tenant 分片 + 租户状态机(ACTIVE/INACTIVE/Offloaded 到 S3),让"数万个小租户各有一套隔离索引"的 SaaS 在单集群上跑起来——三者里多租户机制最完整,31 款里"租户"作为一等公民(分片+状态机+卸载)是 Weaviate 独占。
窄场景
多租户 AI SaaS(每个客户一份隔离知识库的 RAG),租户数千–数万、单租户数据量小(MB–GB 级)、租户有潮汐(试用过期、长尾休眠);小团队(甚至 solo founder),付不起"一租户一集群"的运维。典型画像:AI 客服 SaaS、文档问答 SaaS。
机制
每个租户在 collection 内自动获得隔离分片(shard),查询必须带租户上下文,物理隔离而非"WHERE tenant_id=?" 的逻辑隔离——租户过滤是正确性边界,不是查询条件。租户状态机:ACTIVE(常驻内存)→ INACTIVE(释放内存)→ OFFLOADED(卸载到 S3),冷租户不占内存、首次查询自动 rehydrate(50–200ms 一次性代价)——这正是"用户多、单个用户平时没人查"的多租户成本模型的最优解。过滤索引(indexFilterable/indexRangeFilters)是 per-tenant-shard 的,每个租户的过滤性能独立。
生产验证
DocsBot(创始人 Aaron Edwards 实名):solo founder,无专职 infra 团队;病毒式增长后面临"数万个隔离客户索引"的生存危机;切到 Weaviate Cloud 后支撑 **50,000+ 租户单集群、一年回答 610 万+ 客户问题**。创始人原话:"Weaviate stood out because it's clearly designed for real production use cases, not just experimentation. It was the only solution with an efficient tenant-based system that scaled to our unique workload of tens of thousands of distinct segmented indexes."(https://weaviate.io/case-studies/docsbot,厂商发布的具名案例,创始人实名 quote + 具体数字,DocsBot 产品本身可查)。诚实备注:这是 Weaviate Cloud 的案例,自托管能否复现同等规模未见独立验证。
竞品差距
vs qdrant:无原生多租户原语,官方迁移指南建议"单 collection + namespace payload 字段"或"一租户一 collection"(后者有 ~1000 collection 推荐上限),租户隔离靠应用层保证,是逻辑隔离;vs pgvector:行级 tenant_id 过滤 + post-filter,租户一多过滤性能退化(HN multi-tenant 对比文章:"pgvector's post-filtering approach… degrades significantly as data scales beyond a few million vectors");vs milvus:2.6 支持 100K collections per cluster厂商口径,collection-per-tenant 可行但每个 collection 是重量级元数据对象,5 万租户量级的验证未见公开。
证据等级
厂商具名案例(实名 quote + 具体数字,可交叉验证 DocsBot 产品存在)+ 机制文档(租户状态机是公开文档);自托管同等规模无独立验证
最后核验
2026-10-01

避坑 Go 内存模型与单机内存天花板——50M+ 向量后成本陡增

一句话
Weaviate 用 Go slice 存向量、靠 GC + 500ms 堆探针做内存保护,内存效率是三者里最差的;50M+ 向量后内存/计算需求陡增,大规模场景先算好内存账。这是第一张招牌的精确对偶:为"检索一体"付的内存税——官网不展示 TCO 计算器是有原因的。
窄场景
单机 50M+ 向量、或内存预算敏感的团队。此时 Weaviate 的"检索一体"优势会被内存成本吃掉一部分。
机制
Go 切片存向量 + GC:独立源码分析(daib/mem_weaver 的 DESIGN.md,作者通读 Weaviate 源码)指出——Weaviate 每 500ms 探针检查堆内存、超限则阻塞新分配;在高吞吐系统里 500ms 是永恒,GC 开销意味着"为防 OOM 要按平均用量的 3x 配内存"。Qdrant 的 Rust+jemalloc 在这方面是机制性更优。官方自曝历史:Weaviate 1.15 发布博客承认 filtered aggregation 曾吃掉 **200GB RAM**(binary.read 库滥建临时分配 + 每对象堆分配),后来自研二进制读取库修复——厂商自己承认过内存坑(https://github.com/weaviate/weaviate-io)。第三方 k8s 生产指南(2026):"Weaviate needs more memory and compute than alternatives above 50M vectors"(Qdrant/Milvus 对照,https://devops.gheware.com/blog/posts/vector-databases-kubernetes-production-guide-2026.html)。
生产验证
Finster AI 案例里"Weaviate 团队指导做 hot/warm/cold 存储与量化降本"——连标杆客户都需要厂商手把手做成本优化,侧面印证内存/成本是真实痛点(https://weaviate.io/case-studies/finster);Weaviate 官方文档有专门的"cluster-resources"排错页(Raft 同步超时、OOMKilled exit 137 加内存、vm.max_map_count 调优),说明这是高频生产问题(https://github.com/weaviate/docs)。
竞品差距
vs qdrant:Rust + 成熟量化,同等规模内存占用显著更低社区共识;vs milvus:DiskANN 落盘 + RaBitQ 1-bit 量化(72% 内存削减,厂商口径),冷数据成本更低;vs pgvector:半斤八两,pgvector 的 HNSW 内存占用也大(~90–130GB @10M×1536,独立估算)。厂商营销不谈内存,用户生产现实是"上规模先算内存账",错位明确。
证据等级
官方自曝(1.15 博客)+ 独立源码分析(mem_weaver)+ 第三方生产指南 + 厂商案例侧面印证
最后核验
2026-10-01

用户最买账的 5 点

  1. 一条 API 跑通 RAG 全链路,原型快得离谱。 为什么是真的:hybrid 检索 + vectorizer 模块 + reranker + generative search 全在库内,一次查询返回 grounded 答案,胶水代码量是同类里最少的。好到什么程度/在哪失效:原型到 demo 无敌;但生产化后,模型供应商的延迟/限流/费用会成为系统 SLO 的一部分,链路越长越要补熔断、缓存与评测集。(官方文档;社区共识)
  2. 多租户是"一等公民",SaaS 长尾场景省心。 为什么是真的:tenant-per-shard 物理隔离 + ACTIVE/INACTIVE/OFFLOADED 冷热状态,冷租户不占内存,RBAC 还能按 tenant 限权。好到什么程度/在哪失效:海量小租户、活跃度不均的 SaaS 最受益;但"十万 ACTIVE 小租户"的元数据开销要实测,冷租户首查延迟要预留,租户命名与权限要一次设计对。(官方文档;厂商口径;社区实测)
  3. 开源可自建,Cloud 可接,锁定感低。 为什么是真的:BSD-3-Clause 核心,笔记本、K8s、Weaviate Cloud 跑的是同一引擎,还有 BYOC 落自有 VPC 满足数据驻留;Pinecone 这类纯托管没有自建退出路径。好到什么程度/在哪失效:对合规/驻留敏感的团队这是决定性优势;但自建的运维成本(K8s、监控、备份、升级)要自己扛,"免费"的是许可不是运维。(官方仓库 LICENSE;第三方对比;社区共识)
  4. 带过滤的向量检索是真强(ACORN)。 为什么是真的:ACORN(v1.27 引入、v1.34 起默认)专门解决"高选择性过滤 + HNSW 图遍历"的难题,低相关过滤场景下性能提升显著且无需重建索引。好到什么程度/在哪失效:电商式"语义+价格/库存/品牌多条件过滤"是其舒适区;但过滤语义仍要自己验证召回,老 collection 不会自动切到 ACORN(只影响 v1.34+ 新建 collection)。(厂商博客;官方文档)
  5. 生态集成广,SDK 好用。 为什么是真的:官方 Python/TypeScript/Go/Java/C# 客户端,LangChain/LlamaIndex/Haystack/Dify 开箱集成,GraphQL 查询表达力强,文档与 recipe 丰富。好到什么程度/在哪失效:生态越深绑定越紧——客户端与服务端版本耦合(v3→v4 破坏性迁移、旧服务端逐步被新客户端放弃支持),升级必须两端协同;v4 客户端的 vector_config 等新 API 意味着旧代码要改。(客户端 changelog;社区实测)

吐槽清单

分类吐槽影响版本状态
资源/成本HNSW 全量向量+图驻内存,大规模下内存账单陡峭,配小了直接 OOM 而非降级全版本open(HFresh Preview 中,partially-fixed)
安全自建无原生静态加密(TDE)与服务端原生 TLS,加密全靠基础设施层(云盘/对象存储/反向代理)全版本open
运维扩容加节点后不自动再均衡;v1.32 之前 shard replica 甚至不能在节点间移动<1.32 为甚partially-fixed(1.32 起支持移动,但仍需手动操作)
兼容换 vectorizer/embedding 模型/距离度量≈重建 collection + 全量重向量化,无在线重索引全版本open(官方承认 re-indexing API 在 future release)
兼容导入数据后再加属性:旧对象不回填新属性索引,查询结果不符合预期,只能导出→重建→重导全版本open(官方文档明确记载该限制)
兼容v1.39 起自动建 collection 默认用 named vector default,旧客户端读 embedding 静默为空1.39+open(需同步升级客户端)
兼容Python 客户端 v3→v4 破坏性迁移;新客户端逐步放弃旧服务端(如 4.9.6 止于 v1.23/v1.24)客户端 4.xopen
生态text2vec-contextionary 被弃用、*-palm 更名 *-google,模块跟着供应商一起变客户端 4.16.6+fixed-in-v4.16.6(弃用已落地,迁移成本仍在)
安全v1.38 之前存在 RBAC 角色分配权限提升问题<1.38.0fixed-in-v1.38
易用autoTenantCreation 开启时打错 tenant 名会静默建空租户;tenant not found/inactive 报错对新手不友好全版本open

判决

适合谁

  • 要做 RAG/语义搜索/AI 搜索平台,且希望"向量化→混合检索→重排→生成"尽量收进一个系统、少写胶水的团队。
  • SaaS 多租户、租户量大且活跃度长尾不均,需要 tenant 级物理隔离与冷热成本控制的场景。
  • 对数据驻留/合规敏感,需要"自建与托管可切换、有 BYOC、自建退出路径"的组织。
  • 有 Kubernetes + Prometheus 运维能力,愿意为 HNSW 做内存容量规划的团队。
  • 查询模式是"语义+强业务过滤"(电商、内容检索),能吃到 ACORN 红利的场景。

不适合谁

  • 想把它当 ACID 事务主库、指望多对象事务与 SQL 隔离语义的系统——它没有。
  • 只想要"一个零运维的向量 API",对自建运维、模块配置、调参毫无兴趣的团队(去用全托管 serverless 产品更省心)。
  • 预算卡死在内存上、数据量直奔十亿级,却要求 HFresh(Preview)立刻扛生产的项目。
  • 对"数据发往外部 embedding/LLM 供应商"零容忍,又不愿自建 GPU 模型服务的合规场景。
  • 强 OLAP/强关联查询:cross-reference 能表达引用关系,但它不是图数据库也不是分析引擎,复杂关联与聚合别硬上。

迁移成本

  • 从 pgvector/Postgres 来:对象与向量导出→重建 collection/schema→重建索引;事务、JOIN、复杂 SQL 留在 PG,典型形态是"PG 做主库+Weaviate 做检索副库"的双库架构,应用层要拆读写路径。从 Milvus/Qdrant/Chroma 来:向量可迁,但 collection schema、过滤语义、距离度量、hybrid fusion 策略、多租户(namespace/partition→tenant)映射都要重做;Qdrant 的 payload 索引调参与 Weaviate 的 inverted index/ACORN 不是一一对应。从 Pinecone(托管)来:数据可导出重建,但计费模型从"按用量"变成"自建 infra+运维人力",成本结构完全不同。从 Elasticsearch 来:BM25 能力可部分替代,但 ES 的聚合、分词器生态、运维体系要重建;hybrid 语义与 ES 的 dense_vector 查询 DSL 差异大。换 embedding 模型(不换库):几乎总是全量重向量化+重建索引,建议双索引并行+灰度切换,这笔成本常被低估,要在立项时就排进计划。

来源与待验证清单

  • last_reviewed: 2026-09-29,评审版本:Weaviate v1.39.x(官方博客发布于 2026-08-27;Python 客户端 v4.23.1)。
  • 官方文档(docs.weaviate.io):认证/授权与 RBAC、审计日志、复制与一致性、集群与分片、多租户、备份、向量索引与量化、混合搜索、模块、可观测性。
  • 官方发布说明:v1.36(HFresh Preview、server-side batching/Object TTL GA)、v1.39(Boost API 与 MMR GA、4-bit RQ 预览、实验性 Search REST API)。
  • 厂商博客/安全文章:authn/authz 指南(含 RBAC 与审计日志)、多租户架构(2025-10)、ACORN 过滤检索(2024-11)、企业安全白皮书类文章。
  • 官方仓库与客户端 changelog:weaviate/weaviate(LICENSE:BSD-3-Clause)、weaviate-python-client changelog(模块弃用/更名、客户端版本支持边界)。
  • 社区实测 第三方:replica-recall-divergence 复制分歧实测、langchain4j 集成文档(v1.39 named vector 变更)、Dify 自建迁移文档(gRPC/TLS 端口实践)、TUM edutelligence/artemis 部署文档(Traefik TLS 终止、schema 重建限制)、RedHat 系 FIPS/存储安全调研(托管云 AES-256/BYOK)、CSDN 中文教程(中文资料现状)。
  • 证据等级说明:本档案每条事实标注了"官方文档/厂商口径/社区实测/社区共识/待验证";厂商的性能与规模数字(如百万 tenant、ACORN 加速比)仅作厂商口径引用,未进入判决依据。
  • 已知局限:自建静态加密/TLS 的"查证为无"基于官方文档无对应配置项;Weaviate Cloud 的具体计费单价易过期,本档案只记计量维度;HFresh、4-bit RQ、Search REST API 在评审时仍为 Preview/实验性质。