如何创建第一个zvec Collection?Schema设计分步图解

发布时间:2026/8/29 11:04:32
如何创建第一个zvec Collection?Schema设计分步图解 如何创建第一个zvec CollectionSchema设计分步图解【免费下载链接】zvecA lightweight, lightning-fast, in-process vector database项目地址: https://gitcode.com/GitHub_Trending/zve/zveczvec是一款轻量级、极速的进程内向量数据库in-process vector database它直接嵌入你的应用运行无需独立服务、无需额外配置。本文将带你分步图解如何创建第一个zvec Collection并给出Schema 设计的完整思路从字段定义、向量索引选择到插入与查询新手也能一次跑通。为什么选择 zvec 向量数据库进程内运行像 SQLite 一样嵌入应用支持 Python、C、C 等多种语言 SDK⚡极速检索毫秒级相似度搜索内置 HNSW、IVF、Flat 等多种向量索引功能完整稠密/稀疏向量、全文检索FTS、混合检索开箱即用数据持久WAL 预写日志保证掉电不丢数据先搞懂Collection 和 Schema 是什么在 zvec 中数据的组织方式和关系数据库非常相似概念作用类比Collection存储文档Doc的容器对应磁盘上的一个目录数据库中的表Schema定义 Collection 的结构标量字段 向量字段表结构FieldSchema定义标量字段如 id、标题、分数表的列VectorSchema定义向量字段维度、精度、索引类型专用向量列一个 Schema 由两部分组成标量字段用于过滤和展示与向量字段用于相似度检索字段名必须全局唯一。核心 API 定义在 python/zvec/model/schema/collection_schema.py 与 python/zvec/model/schema/field_schema.py创建与打开逻辑在 python/zvec/zvec.py。第 0 步安装 zvec 向量数据库打开终端一行命令完成安装需 64 位 Python 3.10–3.14pip install zvec分步图解创建第一个 Collection步骤 1️⃣初始化 zvec在程序入口处调用一次初始化只能调用一次它会配置日志、线程数等资源import zvec zvec.init() # 使用默认配置即可步骤 2️⃣设计 Schema关键一步Schema 设计决定了后续查询性能。以笔记检索场景为例我们规划 3 个字段字段名类型说明titleSTRING标量字段笔记标题可加倒排索引scoreFLOAT标量字段用于范围过滤embeddingVECTOR_FP32维度 4向量字段配置 HNSW 索引schema zvec.CollectionSchema( namenotes, fields[ zvec.FieldSchema(title, zvec.DataType.STRING), zvec.FieldSchema(score, zvec.DataType.FLOAT), ], vectors[ zvec.VectorSchema( embedding, zvec.DataType.VECTOR_FP32, 4, zvec.HnswIndexParam(m16, ef_construction200), ) ], )向量索引怎么选这是新手最常纠结的问题索引参数适用场景特点FlatIndexParam万级以下数据默认索引暴力精确搜索零召回损失HnswIndexParam十万~亿级数据图索引m、ef_construction越大精度越高IVFIndexParam超大规模数据倒排聚类构建快、占用低标量字段也可选挂InvertIndexParam倒排索引加速过滤或FtsIndexParam全文检索详见 python/zvec/model/param/init.pyi。步骤 3️⃣创建并打开 Collectioncreate_and_open会在磁盘上创建 Collection 并立即返回可用实例之后重启程序用zvec.open(path)重新打开即可collection zvec.create_and_open(path./my_notes, schemaschema)步骤 4️⃣插入文档并查询每条文档Doc由主键id 标量字段fields 向量vectors组成# 插入 collection.insert([ zvec.Doc(iddoc_1, fields{title: 向量入门, score: 0.8}, vectors{embedding: [0.1, 0.2, 0.3, 0.4]}), zvec.Doc(iddoc_2, fields{title: 索引实战, score: 0.6}, vectors{embedding: [0.2, 0.3, 0.4, 0.1]}), ]) # 向量相似度检索 results collection.query( zvec.Query(field_nameembedding, vector[0.4, 0.3, 0.3, 0.1]), topk10, ) print(results) # 按相似度得分降序返回至此你已完成 zvec Collection 的完整生命周期设计 Schema → 创建 → 写入 → 检索。Collection 的插入、更新、删除DML与过滤查询DQL能力都封装在 python/zvec/model/collection.py 的Collection类中。常用数据类型速查标量字段STRING、BOOL、INT32、INT64、UINT32、UINT64、FLOAT、DOUBLE以及对应的ARRAY_*数组类型。向量字段VECTOR_FP32通用首选、VECTOR_FP16省一半内存、VECTOR_FP64高精度、VECTOR_INT8量化压缩、SPARSE_VECTOR_FP32/SPARSE_VECTOR_FP16稀疏向量。完整枚举定义见 python/zvec/typing/init.pyi。常见错误与避坑指南 ️报错/现象原因与解决duplicate field name字段名重复。标量字段与向量字段共用命名空间必须全局唯一data_type must be one of ...用错了字段类型标量类型不能传给VectorSchema反之亦然RuntimeError初始化失败zvec.init()只能调用一次勿在多个模块重复调用创建同名路径报错路径已存在 Collection。换路径或先用zvec.open()打开已有数据小结创建第一个 zvec Collection 只需 4 步zvec.init()初始化 → 用CollectionSchema定义标量字段与向量字段 →create_and_open创建 →insert/query读写数据。掌握标量/向量字段的划分和 Flat/HNSW 索引的取舍你的 Schema 设计就已经超过大多数人了。想继续深入可以阅读 C 语言完整示例 examples/c/collection_schema_example.c 和 C 示例 examples/c/db/main.cc。【免费下载链接】zvecA lightweight, lightning-fast, in-process vector database项目地址: https://gitcode.com/GitHub_Trending/zve/zvec创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考