Zvec 是阿里开源的进程内向量数据库,定位「向量数据库的 SQLite」无需服务直接嵌入应用。封装 Proxima 实现毫秒级十亿向量搜索,支持稠密/稀疏向量、过滤组合查询,覆盖 Python/JS/Flutter,12k+ Stars Apache-2.0 开源。

🎤 引言

做 RAG、智能体、语义搜索,是不是一上来就得部署一套 Milvus / Qdrant / Weaviate?Docker compose 一拉,配置文件几百行,端口映射、持久化、监控告警一套配齐——还没开始写业务代码,半小时过去了。

有没有可能像 SQLite 那样,pip install 完直接 import 就用?

Zvec 就是冲着这个痛点来的——阿里通义实验室出品,定位「向量数据库的 SQLite」。进程内运行,无需任何外部服务、daemon 或基础设施。

GitHub 上 Star 数已达 12,343(2026-06-24 抓取),Fork 733,License Apache-2.0,最新版本 v0.5.0(2026-06-12 发布),新增 MultiQuery 支持。


⭐ 核心功能

⚡ 毫秒级十亿向量搜索

底层封装了阿里自研的 Proxima 向量搜索引擎(同款技术支撑阿里内部淘宝搜索、支付宝推荐等场景),实测:

  • 十亿向量规模下亚毫秒级搜索
  • 索引构建速度比纯 Faiss HNSW 提升 3-5 倍
  • 内存占用低,支持稠密向量 + 稀疏向量混合索引

🧩 进程内运行,零基础设施

An open-source, fast, lightweight, and feature-rich vector database that runs entirely in-process — no server, daemon, or external infrastructure required.

跟传统向量数据库最大的区别:没有独立的 server 进程。Zvec 作为库直接链接进你的应用,跟业务代码共享内存。优点是:

  • 部署成本归零——不需要 Docker compose
  • 启动速度极快——几百毫秒就能跑
  • 资源隔离简化——不用担心端口冲突
  • 适合本地开发、桌面应用、Edge 设备

📦 三语言 SDK

官方提供完整 SDK:

# Python
pip install zvec

# JavaScript / TypeScript
npm install @zvec/zvec

# Flutter / Dart
flutter pub add zvec

Python SDK 是主推方向,API 设计参考了 ChromaDB,但底层引擎是 Proxima 而非 DuckDB。

🎯 核心能力

  • Dense & Sparse Vectors:稠密 + 稀疏向量混合索引
  • Filtered Vector Search:向量相似度 + 字段过滤组合(类似 SQL WHERE)
  • Grouped Search:GROUP BY 风格聚合("每个分类下 Top-3 相似")
  • MultiQuery(v0.5.0 新增):一次查询多个向量取并集/交集
  • Hybrid Search:向量 + 关键词混合检索

🔌 零依赖一键启动

A single package is all you need — pure local, just install and start searching in seconds.

不需要先装 Redis、不需要先跑 Elasticsearch、不需要 Docker。装完就能用。

🛠️ Zvec Studio 可视化工具

对不熟悉代码的用户,官方提供 Zvec Studio——一个 GUI 工具,可以浏览索引数据、调试查询、可视化向量空间。降低非工程师的接入门槛。


📥 安装使用

一行命令安装

# Python 用户
pip install zvec

# Node 用户
npm install @zvec/zvec

# Flutter 用户
flutter pub add zvec

一分钟上手示例

import zvec

# 1. 定义 schema(类似 SQL DDL)
schema = zvec.CollectionSchema(
    name="example",
    vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4),
)
collection = zvec.create_and_open(path="./zvec_example", schema=schema)

# 2. 插入向量
collection.insert(zvec.Doc(
    id="1",
    vectors={"embedding": [0.1, 0.2, 0.3, 0.4]}
))

# 3. 查询最近邻
results = collection.query(
    queries=zvec.Query("embedding", vector=[0.4, 0.3, 0.3, 0.1]),
    topk=10,
)

for r in results:
    print(r.id, r.score)

构建 RAG 本地检索层

from sentence_transformers import SentenceTransformer
import zvec

# 1. 加载 embedding 模型(用本地模型保证隐私)
model = SentenceTransformer("BAAI/bge-small-zh-v1.5")

# 2. 建索引
schema = zvec.CollectionSchema(
    name="docs",
    vectors=zvec.VectorSchema("vec", zvec.DataType.VECTOR_FP32, 512),
)
col = zvec.create_and_open("./rag_db", schema=schema)

# 3. 文档向量化入库
texts = ["Zvec 是阿里开源向量数据库", "RAG 是检索增强生成", ...]
embeddings = model.encode(texts)
for i, (text, vec) in enumerate(zip(texts, embeddings)):
    col.insert(zvec.Doc(id=str(i), vectors={"vec": vec.tolist()}, fields={"text": text}))

# 4. 检索
query_vec = model.encode(["向量数据库有哪些"])
hits = col.query(queries=zvec.Query("vec", vector=query_vec[0].tolist()), topk=3)
for h in hits:
    print(h.score, h.fields["text"])

从源码构建

需要 CMake + C++17 编译器,详见 Building from Source 文档。


🔍 对比/替代方案

Zvec vs ChromaDB

维度ChromaDBZvec
引擎DuckDB + HNSWProxima(阿里自研)
规模百万级十亿级
嵌入方式进程内进程内
多语言Python 为主Python/JS/Flutter
LicenseApache-2.0Apache-2.0
Stars22k+12k+

结论:百万级以下 ChromaDB 够用;规模上来、需要混合检索/分组聚合,Zvec 更强。

Zvec vs Faiss

  • Faiss:Meta 出品,纯 C++ 库,没有持久化、没有元数据过滤、API 偏底层
  • Zvec:封装 Proxima + 元数据 + 持久化,面向应用层

如果你只想算相似度不关心业务,Faiss 轻量;如果要落地业务(增删改查 + 元数据过滤),Zvec 友好得多。

Zvec vs Milvus / Qdrant / Weaviate

  • Milvus/Qdrant/Weaviate独立 server,需要部署、运维、监控
  • Zvec进程内嵌入,无需 server

嵌入式场景(桌面 App、CLI 工具、Edge 设备、IoT)Zvec 是唯一选择;大规模生产环境 + 多语言微服务架构,传统向量数据库仍有优势。


⚠️ 注意事项

关于规模的坑

  • 十亿向量需要充足内存:Proxima 索引本身有内存开销,10 亿向量(768 维)约需 80-150 GB RAM,小机器跑不动
  • 持久化路径:数据存到本地文件目录,不支持分布式,多机部署需要自己上层包装
  • 多进程并发写:当前版本不支持同一 collection 多进程同时写入,需要进程内加锁

关于生态的坑

  • 第三方 embedding 模型集成:官方只给基础 example,SentenceTransformer / OpenAI / Cohere 等集成需要自己写胶水代码
  • 没有内置 REST API:要对外提供服务必须自己包一层 HTTP server
  • 监控/告警缺失:没有 Prometheus exporter,运维可视化要自己 DIY
  • Cluster 模式未上线:分布式版本在 roadmap,单机是当前唯一选项

关于 License 的注意事项

  • Apache-2.0:商用友好,但商标条款需要注意——不能直接用「Zvec」「Alibaba」等品牌名做衍生产品宣传
  • 专利授权:Apache-2.0 含专利授权,但如果你公司有专利反击策略,需要法务评估

已知问题(来自 GitHub Issues,共 59 个)

  • Windows 下编译偶尔失败:MSVC 工具链版本敏感,推荐 WSL2
  • 大向量删除后空间未立即回收:需手动调用 compact()
  • 部分 LangChain 集成示例滞后:社区贡献版本与官方版本偶有脱节

✅ 总结

Zvec 适合谁用?

  • 🛠️ 本地 RAG 开发者:不想搭 Milvus 集群,桌面端跑向量检索
  • 📱 Edge / IoT 场景:嵌入式设备跑语义搜索、推荐
  • 🖥️ 桌面应用开发者:本地图片搜索、文档检索、代码搜索
  • 🧪 AI Agent 开发者:需要轻量级长期记忆存储(llm-memory)
  • 📊 中等规模生产系统:百万到亿级向量,单机可承载

不适合谁?

  • ❌ 需要分布式集群的大厂核心推荐系统(Milvus/DashVector 更合适)
  • ❌ 想要「开箱即用监控告警」运维(自己包一层)
  • ❌ 不熟悉 Python/C++ 的纯前端开发者(JS SDK 还很新)

一句话推荐:如果你受够了「每个 demo 都要 docker-compose up 半小时起 milvus/qdrant」,又不需要分布式集群,Zvec 是 2026 年最值得一试的嵌入式向量数据库。阿里背书 + Apache-2.0 + 12k Stars + 半年内快速迭代,生态和稳定性都在快速完善。

更多详情: