首页 / 开源热榜 / Zvec / 使用教程

Zvec 中文教程:先用小向量验证本地 collection

更新于 2026-09-23 · 约 8 分钟

Zvec 是进程内向量数据库,应用直接打开本地目录,不需要先部署数据库服务器。它支持向量、全文和结构化过滤,也提供内存与磁盘索引。第一次使用先验证最小 collection,随后再接真实 embedding 和较大数据集。

当前版本:v0.7.0 发布于 2026-08-24。Python wheel 的官方安装说明要求 64 位 Python 3.10–3.14;支持 Linux x86_64/ARM64、macOS ARM64/x86_64 和 Windows x86_64。

1. 建立隔离环境并固定版本

python3 -m venv .venv
source .venv/bin/activate
python -m pip install "zvec==0.7.0"

先确认 Python、操作系统和 CPU 架构落在官方 wheel 范围内。数据目录放在临时位置,不要直接指向已有 collection 或共享生产目录。

2. 定义四维测试 schema

import zvec

schema = zvec.CollectionSchema(
    name="example",
    vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4),
)
collection = zvec.create_and_open("./zvec_example", schema=schema)

向量维度属于 schema。将来切换 embedding 模型时,先确认维度和归一化方式;不要把不同模型产生的向量混入同一字段。

3. 插入两条固定数据并查询

collection.insert([
    zvec.Doc(id="doc_1", vectors={"embedding": [0.1, 0.2, 0.3, 0.4]}),
    zvec.Doc(id="doc_2", vectors={"embedding": [0.2, 0.3, 0.4, 0.1]}),
])

results = collection.query(
    zvec.Query(field_name="embedding", vector=[0.4, 0.3, 0.3, 0.1]),
    topk=2,
)
print(results)

记录 id、分数和排序,然后关闭并重新打开 collection,确认数据仍在。接入真实数据前,还要测试重复 id、错误维度、进程异常退出、备份恢复和磁盘空间不足时的行为。

4. 设计单写者和目录权限

官方 README 说明多个进程可同时读取同一 collection,写入由单进程独占。多 worker 服务应指定一个写入者或使用队列串行化更新。Zvec 本身不提供 HTTP 认证或多租户隔离,数据目录权限和外层 API 鉴权由宿主应用负责。

容量判断:不要直接套用官方性能图。用自己的向量维度、top-k、过滤条件和硬件测试写入时间、索引构建、召回率、P95 延迟、内存和磁盘,再选择 HNSW、DiskANN 或其他索引。

与 LanceDB 对比

LanceDB 官方项目建立在 Lance 列式格式上,强调多模态数据、向量/全文/SQL、自动版本管理,以及 Python、Node.js、Rust 和 REST 接口。Zvec 更强调直接嵌入进程、稠密/稀疏/全文混合检索、多种 ANN 索引和本地 WAL。需要多模态列式数据与版本管理时可评估 LanceDB;需要轻量本地 collection 和灵活索引组合时可评估 Zvec。

验证状态:本轮只核对官方 README/中文 README、pyproject.toml、Quickstart、Benchmarks 与 v0.7.0 Release;没有安装 wheel、创建 collection、执行插入/查询或复测崩溃恢复、并发、召回率和性能数据。

这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。

先判断这个项目是否适合你

适合谁用

适合桌面工具、CLI、Notebook、单机 RAG、Agent 记忆和边缘应用,把向量检索直接嵌进进程。需要多租户权限、网络 API、独立扩缩容或多写者协调时,应在应用层补服务边界,或选择原生服务型数据库。

采用建议

Zvec 适合希望把混合检索放进单机进程、又不想维护独立数据库服务的项目。先在临时目录用固定小向量验证 schema、写入、查询和重开,再测试自己的数据规模、召回率、索引时间、磁盘占用和单写者安排。

原教程未展开的系统信息

核心功能

  • 多语言 SDK

    官方提供 Python、Node.js、Go、Rust 和 Dart/Flutter 入口,v0.7.0 扩展了预编译 SDK 平台。

核验与使用边界

优势与限制

优势

  • 无需部署独立服务,接入路径短
  • 同时支持向量、全文和结构化过滤
  • WAL 与磁盘索引覆盖持久化和较大数据集

限制

  • 写入是单进程独占,不适合多个写者直接共享同一 collection
  • 库本身不提供网络认证、多租户或 API 网关
  • embedding 的生成、版本与维度一致性由应用管理

排错时先核对版本、运行环境和未覆盖范围。这里没有执行过的步骤不会写成实测结论。

常见问题

Zvec v0.7.0 是什么时候发布的?

官方 README 与 Release 记录的日期是 2026-08-24;该版加入 zvec-grep、更多 DiskANN 平台支持、新索引与量化器、DocIterator 和 N-gram tokenizer。

使用 Zvec 需要先启动数据库服务器吗?

不需要。Zvec 是进程内数据库,应用直接打开本地 collection 路径;网络 API、认证和多租户需要应用自行提供。

多个进程可以同时写一个 Zvec collection 吗?

不可以。官方 README 说明多个进程可以并发读取,但写入为单进程独占,需要在应用层安排单写者。

Zvec 会自动把文本转换成 embedding 吗?

README 的基础接口接收用户提供的向量。应用需要自行选择 embedding 模型,并保持写入与查询的模型、维度和归一化方式一致。