在做 AI 应用的时候,向量数据库绝对是不可或缺的一环。Chroma、Milvus、Pinecone……选择不少?但大多数要么太重,要么需要单独部署服务。
如果你只是想在本地跑个 RAG,或者做个轻量级的语义搜索,阿里开源的 Zvec 可能就是你一直在找的答案。
Zvec 是什么
Zvec 是阿里开源的进程内向量数据库——也就是一个可以嵌入到你的应用里直接运行的库。用 C++ 写死,主打轻量和极速。GitHub 上已经有 10.3K Stars,增长速度很快。它的设计哲学是让你的 Python(或 Node.js/Go/Rust)应用直接调用向量检索能力,不需要额外部署一个单独的服务。
它在阿里内部经历过大流量环境的考验。生产级的稳定性。
为什么这么快
核心是 C++ 的底层实现和精细化的索引调优。Zvec 提供多种向量索引类型,包括 HNSW 以及新推出的 DiskANN。在阿里自家的测试中,它在百万到千万级数据集上能做到毫秒级响应。
这里有几个实用数据点:
- Cohere 1M 数据集(100万条,768维向量):吞吐量在主流方案中处于前列
- Cohere 10M 数据集(1000万条,768维向量):同样保持低延迟
- 测试工具用的是社区标准 VectorDBBench
v0.5.0 重磅更新
2026年6月12日的 v0.5.0 版本算是 Zvec 的一个里程碑。加了三个非常重要的能力:
全文搜索(FTS)——不用再组合 Elasticsearch 了。直接在 Zvec 里给字符串字段建 FTS 索引,支持自然语言和结构化表达式的查询。
混合检索——用一条 MultiQuery 同时搜索向量、全文、标量过滤。这基本是 RAG 场景的标准操作了,以前需要拼接两个引擎的结果,现在一个库搞定。
DiskANN 索引——超大规模数据集的救星。大部分索引数据放磁盘,内存只保留热数据,整体内存消耗大幅下降。对 10 亿级向量的场景尤其友好。
没服务器?不需要
这是 Zvec 和 Milvus、Weaviate 最大的区别。Zvec 没有守护进程、没有容器编排、没有网络端口要配置。
```python
import zvec
schema = zvec.CollectionSchema(
name="my_docs",
vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 768),
)
collection = zvec.create_and_open(path="./my_zvec", schema=schema)
collection.insert([
zvec.Doc(id="d1", vectors={"embedding": [0.1]*768}),
])
results = collection.query(
zvec.VectorQuery("embedding", vector=[0.2]*768),
topk=10
)
```
三行代码,零配置。WAL 日志保证写入持久化,进程挂掉也不丢数据。
生态也挺全
- Python:
pip install zvec(支持 3.10~3.14)
- Node.js:
npm install @zvec/zvec
- Go、Rust 官方 SDK
- Dart/Flutter:
flutter pub add zvec
- Zvec Studio:可视化工具,不用写代码也能看数据
支持 Linux(x86_64 + ARM64)、macOS(ARM64)、Windows(x86_64)。还有一个 Zvec 社区推的 Ruby 绑定,虽然不是官方的,但说明社区挺活跃。
槽点
- 对 Python 3.10 以下版本不支持,旧项目要升级 Python
- 多进程并发读没问题,但写是单进程独占的
- DiskANN 是 v0.5.0 刚上的,还需要时间打磨稳定
- 官方文档目前主要是英文,中文版还在完善中
适合谁用
如果你在做 AI 应用开发和 RAG,需要一个本地就能跑、轻量好上手的向量数据库,Zvec 值得一试。它可能比 Chroma 更轻、比 Milvus 更简单。
GitHub:alibaba/zvec
文档:zvec.org
标签:#Zvec #阿里巴巴 #向量数据库 #全文搜索 #DiskANN #RAG #混合检索
关注我,每期分享一个帮你省事的强大工具 🛠️