Weaviate:云原生开源向量数据库
Weaviate:云原生开源向量数据库
Weaviate 在 GitHub 上已经拿到 16,265 Star 了。
这是一个开源的云原生向量数据库,用 Go 语言写成。它同时存储对象和向量,把语义搜索、关键词过滤、RAG 和重排序装进同一个查询接口里。

1、这玩意儿是干嘛的
向量数据库的核心逻辑是把文本、图片这类非结构化数据转成高维向量,然后按语义相近程度来检索。
Weaviate 在这个基础上做了不少扩展。它支持两种向量写入方式:导入时自动向量化,接入 OpenAI、Cohere、HuggingFace 等模型直接生成嵌入;也可以直接导入自己提前算好的向量。查询时可以纯向量检索,也可以把 BM25 关键词搜索和向量相似度混合起来,用一套 API 拿到结果。
除了文本语义搜索,Weaviate 也支持图像搜索。你扔进去一张图,它能按视觉语义相近程度把相似的图捞出来。
常见的使用场景包括 RAG 系统、语义搜索、图像搜索、推荐引擎、聊天机器人和内容分类。

2、为什么值得关注
做过搜索或 RAG 的人大多遇到过一个问题:向量检索和关键词过滤各跑各的,中间还要自己写逻辑把结果拼起来,延迟和准确率都很难兼顾。
Weaviate 把这几层揉进了一个查询里。语义相似度、关键词匹配、RAG 生成、结果重排序,一次调用就能走完。官方给出的数据是可以在十亿级向量上做毫秒级搜索,向量压缩功能还能把内存占用压下去。
生产环境需要的功能它基本都内置了:多租户隔离、数据复制、基于角色的权限控制,还有对象级别的 TTL 来自动清理过期数据。生态方面,LangChain、LlamaIndex、Haystack 这些主流框架都接入了 Weaviate。
3、怎么用
部署方式很灵活。本地测试可以用 Docker 一键起:
docker compose up -d
生产环境可以上 Kubernetes,或者直接使用 Weaviate Cloud 托管服务。
客户端覆盖了主流语言:Python、JavaScript/TypeScript、Java、Go、C#。同时也暴露了 REST、gRPC 和 GraphQL 三套 API。
Python 里建集合、灌数据、做语义搜索的代码很短:
import weaviate
from weaviate.classes.config import Configure, DataType, Property
client = weaviate.connect_to_local()
client.collections.create(
name="Article",
properties=[Property(name="content", data_type=DataType.TEXT)],
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"},
])
results = articles.query.near_text(query="Search objects by meaning", limit=1)
print(results.objects[0])
client.close()
4、适合哪些人用
- 在搭 RAG 系统或语义搜索平台的开发者
- 需要把关键词搜索和向量检索统一到一起的工程团队
- 做推荐引擎、聊天机器人、内容分类的 AI 应用团队
- 对搜索延迟和系统稳定性有要求、需要处理大规模向量数据的场景
底层存储选 Weaviate,可以把向量检索、关键词过滤和生成式搜索这三件事合成一个查询来完成。
统稳定性有要求、需要处理大规模向量数据的场景
底层存储选 Weaviate,可以把向量检索、关键词过滤和生成式搜索这三件事合成一个查询来完成。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)