关键要点
- Weaviate核心采用BSD-3-Clause许可;仓库
wl/目录内的功能受另一份Weaviate License约束,需要付费LICENSE_KEY激活 - 可通过Docker、Docker Compose或Kubernetes/Helm图表完全自托管——运行BSD许可的核心无需外部账户
- Weaviate Cloud是独立的可选托管服务,按使用量计费并提供免费层,适合不想自行运维集群的团队
- 在单次混合查询中结合向量相似度搜索与BM25关键词搜索,并支持按结构化对象属性过滤
- 提供REST、GraphQL和gRPC API,并有Python、TypeScript/JavaScript、Go、Java和C#/.NET的官方客户端库
- 支持OpenAI、Cohere、HuggingFace、Google和Ollama的集成向量化模块,也可自带预先计算好的向量
- 截至2026年9月,GitHub仓库约有16,800颗星、约1,400次分叉
- 由总部位于荷兰阿姆斯特丹的Weaviate B.V.构建和维护
📍 简单一句话
Weaviate是一个核心为BSD-3-Clause的可自托管向量数据库,用于RAG和语义搜索,其中一组受限功能受另一份需要付费密钥的专有许可证约束。
💬 简单来说
你无需向向量数据库厂商付费来存储和搜索嵌入向量,而是可以用BSD许可的核心免费在Docker或Kubernetes上自己运行这个数据库。代码库另一部分中的一小组高级功能只有购买许可证密钥才会启用——其余功能无需密钥即可使用。
📌注: 本评测是本地LLM软件目录中Weaviate条目的深度补充——该页面提供Weaviate与数十款其他本地AI工具的一览式对比。
Weaviate是什么?
Weaviate是一个开放核心的向量数据库,将数据对象及其向量嵌入一起存储,因此你可以按语义、按关键词,或两者同时进行搜索。其GitHub描述称其为"一个存储对象与向量的开源、云原生向量数据库"。与在现有数据库上外挂向量索引不同,Weaviate从一开始就被设计为原生的向量存储,内置结构化模式、过滤和多租户支持。
- 核心功能:将向量嵌入与结构化对象数据一起索引的数据库,可通过REST、GraphQL或gRPC查询
- 搜索模式:纯向量(最近邻)搜索、BM25关键词搜索,以及在单次查询中融合两者的混合搜索
- 向量化:内置OpenAI、Cohere、HuggingFace、Google和Ollama嵌入模型的集成模块,也可直接提供你自己预先计算好的向量
- 部署方式:Docker、Docker Compose、Kubernetes/Helm、用于本地原型开发的内嵌Python客户端,或托管的Weaviate Cloud服务
- 开发方:Weaviate B.V.,总部位于荷兰阿姆斯特丹
- 规范仓库:github.com/weaviate/weaviate——本评测所用版本历史、许可证文件和发布说明的来源
Weaviate的项目历史与版本里程碑
Weaviate已持续活跃开发多年,如今频繁发布小版本,同一个月内经常有多个次要版本发布。该项目已从单一的向量搜索引擎成长为一个更广泛的平台,还包括生成式搜索(RAG)、重排序、自然语言Query Agent,以及基于角色的访问控制和多租户等企业级功能。
- 1v1.19——混合搜索正式发布
Why it matters: 将BM25关键词搜索与向量搜索合并为单一查询类型,这一功能至今仍是Weaviate相对纯向量数据库定位的核心卖点。 - 2v1.24——命名向量
Why it matters: 允许单个对象持有多个向量表示(例如每个嵌入模型一个,或每个属性一个),有利于多模型RAG场景。 - 3v1.25–v1.26——多租户与复制改进
Why it matters: 增强了生产环境、多客户部署中租户间的隔离性和数据持久性。 - 4v1.27–v1.28——向量压缩(RQ/PQ)改进
Why it matters: 通过压缩已存储的向量降低大规模部署的内存占用,直接影响自托管集群的持有成本。 - 5v1.29–v1.30——基于角色的访问控制(RBAC)
Why it matters: 增加了细粒度权限管理,这是许多在自有基础设施上运行Weaviate的企业级和受监管部署的必备要求。 - 6v1.38——2026年9月小版本发布
Why it matters: 根据[官方GitHub发布页面](https://github.com/weaviate/weaviate/releases),延续了项目一贯的快速发布节奏,改进了过滤和模块指标的性能。 - 7v1.39——2026年9月
Why it matters: 根据[官方GitHub发布页面](https://github.com/weaviate/weaviate/releases),新增了generative-meta模块,并进一步改进了HNSW索引和聚合查询的性能。
Weaviate能做什么?
Weaviate的功能集中在大规模存储和查询向量,同时在同一查询中保留结构化过滤和关键词搜索能力。以下是根据Weaviate自身GitHub README和文档整理的各部分实际功能。
- 向量搜索——基于HNSW索引对高维嵌入进行最近邻搜索,用于查找语义相似的对象
- 混合搜索——在单次查询中结合向量相似度与BM25关键词评分,适用于纯语义或纯关键词搜索单独都无法得到最佳结果的场景
- 结构化过滤——在同一查询中按对象属性(日期、数字、字符串、地理坐标)过滤向量搜索结果,无需在应用代码中对结果做后处理
- 生成式搜索(RAG)——将检索到的对象直接传给连接的LLM提供商,生成答案、摘要或对结果的转换,无需单独的编排层
- Query Agent——根据Weaviate自身产品页面的说明,可自动将自然语言问题转换为优化后的Weaviate查询
- 向量化模块——内置通过OpenAI、Cohere、HuggingFace、Google和Ollama生成嵌入的集成,也可以索引你自己计算好的向量
- 多租户与RBAC——按租户隔离数据,并通过基于角色的权限控制访问,面向生产、多客户或受监管部署
- 水平扩展与复制——在自托管集群中跨节点分片和复制数据,以支持更大数据集和更高可用性
使用示例:使用Weaviate的三种方式
以下是基于上文所述Weaviate已文档化功能构建的具体工作流程——并非假设性用例。
安装Weaviate:Docker、Kubernetes与内嵌模式
Weaviate不是可下载的桌面应用——它是一个由你自己运行、或作为托管云服务使用的数据库服务器。以下安装方式来自官方GitHub README和文档——由于确切的版本标签会随发布变化,请始终直接以这些页面为准。
方式 | 命令/链接 |
|---|---|
| Docker(单容器,快速测试) | docker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:1.39.5 |
| Docker Compose | 通过官方配置生成器生成docker-compose.yml,然后运行docker compose up -d |
| Kubernetes / Helm | 根据Kubernetes安装指南使用官方Helm chart |
| 内嵌(Python客户端) | 根据官方文档,直接从weaviate-client Python包启动内嵌本地实例用于原型开发 |
| Weaviate Cloud(托管,可选) | console.weaviate.cloud——无需自托管,按使用量计费并提供免费层 |
Weaviate默认在8080端口暴露HTTP,在50051端口暴露gRPC;可通过curl http://localhost:8080/v1/meta检查实例是否在运行。除了需要运行Docker或Kubernetes外,Weaviate本身没有固定的硬件最低要求,但大规模下的实际性能取决于数据集大小、所选索引类型,以及是否启用向量压缩——小型集合在笔记本电脑上即可流畅运行,而大型生产索引则需要按向量数量和维度合理配置的服务器。
Weaviate的定价与许可
自托管BSD-3-Clause核心是免费的;一组受限功能以及托管的Weaviate Cloud服务是付费的。这确实是一个分裂式模型,而非简单的"开放核心加企业升级"标签——具体条款请在LICENSE文件中核实,以供你自己的合规审查使用。
自托管(BSD-3-Clause核心)
- 费用:
- 免费
- 涵盖范围:
wl/目录之外的完整向量数据库引擎——向量搜索、混合搜索、过滤、大多数模块集成以及自管理的扩展
自托管,受限wl/功能
- 费用:
- 需要付费Weaviate License密钥(
LICENSE_KEY环境变量) - 涵盖范围:
- 限定在仓库
wl/目录内的一组特定功能——由于哪些功能受限可能随版本变化,当前范围请查看LICENSE文件
Weaviate Cloud(托管)
- 费用:
- 根据weaviate.io,按使用量计费并提供免费层
- 涵盖范围:
- 完全托管的集群,无需自托管或管理许可证密钥;与上述自托管授权模型相互独立
PromptQuorum自己的软件目录此前将Weaviate的许可证简单标注为开源。根据本评测撰写时对Weaviate GitHub仓库中LICENSE和LICENSE-BSD文件的直接阅读,这种说法低估了其分裂程度:GitHub自身的仓库元数据之所以将许可证报告为"Other",正是因为核心代码(BSD-3-Clause)与wl/目录代码(专有的Weaviate License,受密钥限制)采用了不同的许可方式。在依据这一区别做出法律决策前,请自行阅读LICENSE文件——许可范围可能随版本变化。
Weaviate 对比 Qdrant
Weaviate和Qdrant是使用最广泛的两款可自托管向量数据库,两者经常被拿来比较,因为都提供免费的自托管核心以及可选的托管云层。最明显的差异体现在查询模型、许可结构和API范围上。
核心许可证
- Weaviate:
- BSD-3-Clause,另加针对
wl/目录功能的独立专有许可证 - Qdrant:
- 核心引擎为Apache-2.0——具体许可细节见Qdrant评测
查询API
- Weaviate:
- REST、GraphQL和gRPC
- Qdrant:
- REST和gRPC(无GraphQL)
混合搜索
- Weaviate:
- 内置,在单次查询中结合向量与BM25关键词搜索
- Qdrant:
- 通过稀疏+密集向量融合支持
生成式搜索/RAG辅助
- Weaviate:
- 内置生成式搜索模块,直接调用所连接的LLM提供商
- Qdrant:
- 并非核心内置功能,通常需搭配外部编排层
数据模型
- Weaviate:
- 基于模式的对象,带命名属性和命名向量
- Qdrant:
- 带有效载荷(灵活JSON)和向量的点
托管云选项
- Weaviate:
- Weaviate Cloud,按使用量计费并提供免费层
- Qdrant:
- Qdrant Cloud,按使用量计费并提供免费层
如果你更看重一个能在单次查询中同时处理从检索到生成整个环节(生成式搜索)并支持GraphQL的数据库,Weaviate的功能集在开箱即用方面覆盖更广。如果你更看重一个更简单、统一采用Apache-2.0许可、无需追踪功能限制的核心,可以直接评估Qdrant。两者都在积极维护中;做决定前请在各自官网核实最新的功能和定价详情。
谁适合使用Weaviate?
Weaviate是否适合你,取决于你是否需要一个内置混合搜索和生成式搜索的基于模式的向量数据库,以及BSD/专有分裂式许可是否适合你的组织。
Weaviate 对比其他向量数据库
Weaviate是几款为RAG和语义搜索打造的可自托管向量数据库之一。以下是它在这一领域中与其他选项的对比——完整目录见本地LLM软件目录,最接近的正面对比见上文专门的Weaviate 对比 Qdrant。
- Qdrant——采用Apache-2.0许可的向量数据库,提供REST和gRPC API,稀疏+密集混合搜索支持出色;详见上文专门的对比部分和完整的Qdrant评测。
- Milvus——为超大规模部署打造的Apache-2.0许可向量数据库,索引类型比大多数替代品更丰富;完整详情见Milvus评测。
- Chroma——一款更轻量、专注于嵌入的向量数据库,因设置极简,在原型开发和小型RAG项目中很受欢迎;详见Chroma评测。
- txtai——一个内嵌式、一体化的语义搜索与RAG库,将向量索引直接打包进Python应用,而非作为独立服务器运行;如果内嵌式、单进程方案比独立数据库服务器更适合你的项目,可参考txtai评测。
- Pinecone——完全托管、闭源的向量数据库,完全不提供自托管选项,可作为对照案例,用于对比纯云端厂商与Weaviate等可自托管选项;四方直接对比见Pinecone 对比 Weaviate 对比 Qdrant 对比 Chroma。
评估Weaviate时的常见误区
关于Weaviate的大多数困惑,都源于其许可证结构、误以为必须使用云服务,或把它与简单的内嵌库混为一谈。
常见问题
Weaviate是什么?
Weaviate(weaviate.io,源码见github.com/weaviate/weaviate)是一个开放核心的向量数据库,同时存储结构化对象及其向量嵌入,支持向量搜索、BM25关键词搜索、混合搜索以及内置的生成式搜索(RAG)。
Weaviate是免费的吗?
BSD-3-Clause许可的核心自托管免费。仓库wl/目录内一组特定功能需要付费的Weaviate License密钥才能激活。托管服务选项Weaviate Cloud是一项独立的按使用量计费服务,附带免费层。
Weaviate是开源的吗?它使用什么许可证?
部分开源。Weaviate的核心采用BSD-3-Clause许可。仓库中限定于wl/目录的一组特定功能,受另一份仅在购买许可证密钥后才激活的专有Weaviate License约束。正因这种分裂结构,GitHub仓库元数据将整体许可证归类为"Other",而非用单一经OSI批准的许可证覆盖整个代码库。
Weaviate能完全离线或在隔离网络环境中运行吗?
就核心数据库本身而言可以——它完全运行在你自己的基础设施上,无需任何外部调用。如果你为云端提供商(OpenAI、Cohere等)配置了向量化或生成式搜索模块,这些特定调用需要互联网访问;若要实现完全离线的流水线,请将这些模块指向本地托管的引擎,如Ollama。
Weaviate支持混合搜索吗?
支持。Weaviate在单次混合查询中结合向量相似度搜索与BM25关键词搜索,并提供可调节的alpha参数来决定偏重哪种模式。
Weaviate有GraphQL API吗?
有。Weaviate提供REST、GraphQL和gRPC API,并附带Python、TypeScript/JavaScript、Go、Java和C#/.NET的官方客户端库。
如何安装Weaviate?
最快的方式是使用单条Docker命令(docker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:<version>)。生产环境请使用Docker Compose或官方Kubernetes/Helm chart;如需在Python中进行本地原型开发,可使用内嵌客户端。详情见上文安装表格。
Weaviate Cloud是什么?
Weaviate Cloud是Weaviate B.V.提供的可选全托管服务,按使用量计费并附带免费层。它与自托管的授权模型相互独立——你可以在不使用Weaviate Cloud的情况下无限期自托管BSD-3-Clause核心。
谁开发了Weaviate?
Weaviate由总部位于荷兰阿姆斯特丹的Weaviate B.V.开发,在github.com/weaviate/weaviate维护着一个活跃的开源仓库。
Weaviate在GitHub上有多少颗星?
截至2026年9月,Weaviate的GitHub仓库约有16,800颗星、约1,400次分叉——由于数字持续变化,最新数量请查看实时仓库。