📦 项目简介
Weaviate 是一款开源、云原生的向量数据库,同时存储对象和向量,支持大规模语义搜索。它将向量相似度搜索、关键词过滤、检索增强生成(RAG)和重排序功能整合到单个查询接口中,是构建 AI 应用的理想数据底座。

Weaviate —— AI 开发者最爱的开源向量数据库
⚙️ 安装要求和过程
环境要求
- Docker 20.10+(推荐方式)
- 内存:最低 4GB RAM,生产环境建议 8GB+
- 存储:持久化卷(可选,用于数据持久化)
- 客户端:Python 3.8+、Node.js 16+、Java 11+、Go 1.18+ 可选
快速安装(Docker 本地部署)
第一步:创建 docker-compose.yml 配置文件:
services:
weaviate:
image: cr.weaviate.io/semitechnologies/weaviate:1.36.0
ports:
- "8080:8080"
- "50051:50051"
environment:
ENABLE_MODULES: text2vec-model2vec
MODEL2VEC_INFERENCE_API: http://text2vec-model2vec:8080
# 轻量级嵌入模型,导入数据时会自动生成向量
text2vec-model2vec:
image: cr.weaviate.io/semitechnologies/model2vec-inference:minishlab-potion-base-32M
第二步:启动服务
docker compose up -d
第三步:安装 Python 客户端
pip install -U weaviate-client
也可以使用 Weaviate Cloud 托管服务(免费试用),或部署到 Kubernetes、AWS、GCP 等云平台。
🚀 核心功能
⚡ 毫秒级十亿向量搜索
基于 Go 构建,高负载下响应稳定。采用 HNSW(Hierarchical Navigable Small World)索引算法,支持 ANN 基准测试领先性能,十亿级向量复杂语义搜索毫秒级返回。
🔀 混合检索(向量 + 关键词 + 过滤)
单接口同时支持语义搜索、传统关键词(BM25)搜索、图像搜索,支持高级过滤,可灵活组合获得最优结果。内置 hybrid 查询类型,自动融合向量相似度与关键词相关性分数。
🤖 内置 RAG & 重排序
无需额外工具,直接支持生成式搜索(RAG)和重排序(Reranking)能力。可快速构建 Q&A 系统、聊天机器人、摘要工具。集成 Cohere、OpenAI、Voyage 等主流 Reranker 模型。
📈 生产级可扩展性
支持水平扩展、多租户隔离、副本、细粒度 RBAC 权限控制,适配从原型到大规模生产场景。存储计算分离架构,支持 Kubernetes 原生编排。
💾 低成本运维 & 向量压缩
内置向量压缩能力(标量量化、二进制量化、产品量化),通过向量量化、多向量编码降低内存占用,对搜索性能影响极小。支持对象 TTL 机制,按集合配置数据过期时间,自动清理过期数据。
💡 典型使用场景
场景一:RAG(检索增强生成)系统
将企业文档、知识库导入 Weaviate,结合 LLM 构建精准问答系统。Weaviate 负责语义检索召回相关段落,LLM 负责生成最终答案,大幅降低幻觉率。
import weaviate
from weaviate.classes.query import Filter
client = weaviate.connect_to_local()
# 语义搜索 + 元数据过滤
results = client.collections.get("Document").query.near_text(
query="如何申请退款?",
limit=5,
filters=Filter.by_property("category").equal("help")
)
for obj in results.objects:
print(obj.properties["content"])
场景二:语义搜索 & 推荐引擎
电商、内容平台可用 Weaviate 实现”理解意图”的搜索体验。用户输入自然语言查询,系统返回语义最匹配的商品或内容,而非简单的关键词匹配。
Weaviate 也支持多模态搜索(文本 + 图像),用户可用图片搜索相似商品,或用文本描述搜索相关图片。
📦 Python 快速上手
import weaviate
from weaviate.classes.config import Configure, DataType, Property
# 连接本地 Weaviate 服务
client = weaviate.connect_to_local()
# 创建集合(类似关系数据库的表)
client.collections.create(
name="Article",
properties=[Property(name="content", data_type=DataType.TEXT)],
# 使用 Model2Vec 向量化器,导入时自动生成向量
vector_config=Configure.Vectors.text2vec_model2vec(),
)
# 插入数据并自动生成向量
articles = client.collections.get("Article")
articles.data.insert_many([
{"content": "Vector databases enable semantic search"},
{"content": "Machine learning models generate embeddings"},
{"content": "Weaviate supports hybrid search capabilities"},
])
# 执行语义搜索
results = articles.query.near_text(query="Search objects by meaning", limit=1)
print(results.objects[0].properties["content"])
client.close()
📌 推荐理由
Weaviate 是我推荐的向量数据库首选之一,尤其适合以下场景:
- 与已发布的同类项目对比:Qdrant(Rust,极致性能)、Milvus(分布式,大规模)、Chroma(轻量,快速上手)—— Weaviate 则胜在生态最完整和集成最丰富
- AI Agent 生态集成:Weaviate 积极拥抱 AI Agent 生态,官方提供 Agent Skills,支持 Claude Code、Cursor 等 AI 编码工具直接操作
- 多语言 SDK 覆盖最全:Python、JavaScript/TypeScript、Java、Go、C#/.NET 五大官方 SDK,社区还有 Rust、PHP、Ruby 等扩展
- BSD-3-Clause 许可:商业友好,可自由修改和分发,适合企业内嵌使用
如果你正在构建 RAG 系统、语义搜索功能,或任何需要”理解语义”的 AI 应用,Weaviate 值得作为向量数据库的第一选择进行评估。
📥 下载地址 & 相关链接
- 🌐 项目官网:https://weaviate.io
- 🐙 GitHub 仓库:https://github.com/weaviate/weaviate(16.4K+ Stars)
- 📚 官方文档:https://weaviate.io/developers/weaviate
- 🐳 Docker 镜像:
cr.weaviate.io/semitechnologies/weaviate:latest - ☁️ Weaviate Cloud:https://console.weaviate.cloud(免费试用)
- 💬 社区论坛:https://forum.weaviate.io
✝️ 开源协议:BSD 3-Clause License | 开发语言:Go | 2016年发布,持续维护至今
