Zvec:阿里巴巴开源的轻量级进程内向量数据库
阿里巴巴开源的 Zvec 向量数据库是一个轻量级、快速的进程内向量数据库,为开发者提供了一个简单而强大的方式来构建向量搜索应用。在 AI 和向量搜索技术快速发展的今天,我们来深入了解这个值得关注的项目。 什么是 Zvec? Zvec 是一个开源的进程内向量数据库,主打"轻量级、闪电般快速"。与传统的独立向量数据库服务不同,Zvec 采用进程内架构,可以直接嵌入到应用程序中运行。它基于阿里巴巴经过实战检验的 Proxima 向量搜索引擎构建,继承了阿里巴巴在高并发、大规模场景下的技术积累。 核心特性 极快的速度:能够在毫秒级别搜索数十亿个向量,性能表现优异 开箱即用:安装后几秒钟即可开始使用,无需复杂的服务器配置 多种向量支持:同时支持密集向量(dense vectors)和稀疏向量(sparse vectors) 混合搜索:可以结合语义相似度和结构化过滤条件进行精确搜索 跨平台运行:作为进程内库,可以在笔记本、服务器、CLI 工具甚至边缘设备上运行 数据持久化:支持本地文件存储,数据不会因为进程退出而丢失 快速上手 Zvec 目前支持 Python 和 Node.js 两种语言,Python 版本支持 3.10-3.12,覆盖了主流的开发环境。 安装 1 pip install zvec 或者使用 Node.js: 1 npm install @zvec/zvec 基本使用示例 让我们通过一个完整的例子来了解 Zvec 的基本用法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import zvec # 定义集合 schema schema = zvec.CollectionSchema( name="example", vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4), ) # 创建集合(本地文件存储) collection = zvec.create_and_open(path="./zvec_example", schema=schema) # 插入文档 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.VectorQuery("embedding", vector=[0.4, 0.3, 0.3, 0.1]), topk=10 ) # 结果按相关性排序 print(results) 这个简单的例子展示了 Zvec 的三个核心操作:定义 schema、插入数据和搜索查询。 ...