惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
V
Vulnerabilities – Threatpost
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
SecWiki News
SecWiki News
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
B
Blog
TaoSecurity Blog
TaoSecurity Blog
The Last Watchdog
The Last Watchdog
H
Hacker News: Front Page
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园_首页
D
Docker
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Y
Y Combinator Blog
W
WeLiveSecurity
N
News and Events Feed by Topic
F
Fortinet All Blogs
PCI Perspectives
PCI Perspectives
WordPress大学
WordPress大学
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Recent Announcements
Recent Announcements
Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
Hacker News: Ask HN
Hacker News: Ask HN
爱范儿
爱范儿
腾讯CDC
Last Week in AI
Last Week in AI
月光博客
月光博客
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
Help Net Security
Help Net Security
V
V2EX
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
H
Heimdal Security Blog
L
LINUX DO - 最新话题
GbyAI
GbyAI
The Hacker News
The Hacker News
罗磊的独立博客
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 【当耐特】
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V2EX - 技术
V2EX - 技术
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
O
OpenAI News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 你要加油呐 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 安卓APP通话记录与录音上传踩坑记录 - 子舒的博客 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 iii:零集成架构的后端统一运行时 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽
阿里巴巴开源 Zvec:嵌入应用的高性能进程内向量数据库
Cheman · 2026-06-17 · via BlogFinder

今天在 GitHub Trending 上看到一个非常有实力的项目:阿里巴巴开源的 Zvec——一款嵌入应用内部的轻量级向量数据库,专为低延迟、高吞吐的相似性搜索场景设计,已经在阿里集团内部经受了大规模生产环境的考验。

一、项目概述

Zvec 的核心理念是将向量数据库直接嵌入应用程序进程,而不是作为独立服务部署。这种设计带来了几个关键优势:

  • 零运维开销:无需部署独立的数据库服务,没有网络通信开销,配置简单
  • 极致低延迟:进程内调用消除了网络往返时间,搜索延迟降至毫秒级
  • 随处运行:从 Jupyter Notebook 到边缘设备,只要你的代码能运行,Zvec 就能运行
  • 数据持久化保障:通过 WAL(Write-Ahead Logging)机制保证数据不会因进程崩溃或断电而丢失

在 v0.5.0(2026年6月12日发布)中,Zvec 引入了多项重量级更新,包括原生全文检索(FTS)、混合查询(Hybrid Retrieval)、DiskANN 磁盘索引,以及全新的 Go/Rust SDK,生态扩展非常迅速。

二、技术原理

2.1 架构设计

Zvec 采用 C++17 内核 + 多语言绑定的架构。核心向量引擎完全用 C++ 编写,上层通过 pybind11(Python)、N-API(Node.js)、cgo(Go)、FFI(Rust)等方式提供语言绑定。从 CMakeLists.txt 可以看出其构建体系的几个关键设计:

cmake_minimum_required(VERSION 3.13)
project(zvec)
set(CC_CXX_STANDARD 17)

option(BUILD_ZVEC_SHARED "Build all-in-one C++ shared library libzvec" ON)
option(BUILD_PYTHON_BINDINGS "Build Python bindings using pybind11" OFF)
option(BUILD_C_BINDINGS "Build C bindings" ON)

架构分为三个核心层:

  1. libzvec_core:底层数据结构与索引算法(HNSW、RaBitQ、DiskANN)
  2. libzvec:完整的数据库功能层,包含集合管理、查询引擎、WAL 持久化
  3. 语言绑定层:各语言的 SDK 封装

2.2 索引引擎与向量算法

Zvec 支持多种向量索引类型,可根据场景在内存与磁盘之间灵活选择:

  • HNSW:经典的内存型图索引,适合中小规模数据集,查询延迟极低
  • RaBitQ:量化压缩索引,在 Linux x86_64 上支持 AVX2/AVX-512 SIMD 加速,显著降低内存占用:
if(COMPILER_SUPPORTS_AVX2 OR COMPILER_SUPPORTS_AVX512)
    set(RABITQ_SUPPORTED ON)
    if(RABITQ_ENABLE_AVX512 AND COMPILER_SUPPORTS_AVX512)
        set(RABITQ_ARCH_FLAG "${MATH_RABITQ_ARCH_FLAG_AVX512}")
    endif()
endif()
  • DiskANN:基于磁盘的索引(仅 Linux x86_64,需 libaio),将索引主体存储在磁盘上,大幅降低内存需求,适合十亿级向量的大规模场景:
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
    set(DISKANN_SUPPORTED ON)
    add_definitions(-DDISKANN_SUPPORTED=1)
endif()

2.3 全文检索与混合查询

v0.5.0 引入的 FTS 功能非常值得关注。Zvec 支持对任意字符串字段附加全文索引,内置 jieba 中文分词器,分词字典会被打包到 Python wheel 中:

install(FILES
    "${ZVEC_JIEBA_DICT_SRC}/jieba.dict.utf8"
    "${ZVEC_JIEBA_DICT_SRC}/hmm_model.utf8"
    DESTINATION ${ZVEC_PY_INSTALL_DIR}/zvec/data/jieba_dict)

混合查询(MultiQuery)可以在单次查询中同时融合稠密向量相似度、稀疏向量相似度、全文检索相关性和标量字段过滤,避免了传统方案中需要两次独立调用再合并结果的繁琐流程。

2.4 数据持久化与并发模型

Zvec 通过 WAL 实现持久化——所有写操作先写入日志,再应用到内存索引。即使进程意外终止,重启后也能从 WAL 恢复数据。并发模型上,Zvec 支持多进程同时读取同一集合,写操作保持单进程独占。

三、安装与快速开始

环境要求

  • Python:3.10 ~ 3.14
  • Node.js:支持主流 LTS 版本
  • 操作系统:Linux(x86_64/ARM64)、macOS(ARM64)、Windows(x86_64)

安装

Python 安装一行命令搞定:

Node.js 同样简洁:

还提供 Go、Rust、Dart/Flutter 官方 SDK。

最简示例

import zvec

# 定义集合 Schema(含一个 4 维浮点向量字段)
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)

整个流程只有定义 Schema → 插入数据 → 查询三步,无需配置服务器、连接字符串或任何外部依赖。

四、使用方法与实战

4.1 多向量与多索引

Zvec 支持在同一集合中创建多个向量字段,每个字段可以独立选择索引类型:

schema = zvec.CollectionSchema(
    name="multimodal",
    vectors={
        "dense": zvec.VectorSchema("dense", zvec.DataType.VECTOR_FP32, 768),
        "sparse": zvec.VectorSchema("sparse", zvec.DataType.VECTOR_SPARSE),
    },
)

这在多模态检索场景中非常实用——例如同时用 CLIP 图像嵌入和 BM25 文本嵌入进行联合检索。

4.2 全文检索实战

schema = zvec.CollectionSchema(
    name="articles",
    vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 768),
    fields=[
        zvec.FieldSchema("title", zvec.DataType.STRING),
        zvec.FieldSchema("content", zvec.DataType.STRING),
    ],
)

中文全文检索开箱即用,内置 jieba 分词,无需额外配置。

4.3 混合查询

results = collection.query(
    zvec.MultiQuery(
        vector=zvec.VectorQuery("embedding", vector=query_vec, topk=10),
        text=zvec.TextQuery("content", query="机器学习入门", topk=10),
        filter=zvec.Filter("category == 'tech'"),
    )
)

4.4 Zvec Studio

官方还提供了 Zvec Studio 可视化工具,可以直观地浏览数据、调试查询,无需编写任何代码。

五、常见问题与解决方案

Q1:DiskANN 在 macOS 上为什么不可用?

DiskANN 依赖 Linux 特有的 libaio 异步 I/O 库,目前仅在 Linux x86_64 上构建。在 macOS 或 ARM64 Linux 上,建议使用 HNSW 或 RaBitQ 索引作为替代。

Q2:RaBitQ 需要什么 CPU 支持?

RaBitQ 依赖 AVX2 或 AVX-512 SIMD 指令集。在 ARM64(如 Apple Silicon)和未检测到这些指令集的 x86 平台上会自动禁用。

Q3:多进程写冲突怎么办?

Zvec 的设计是单进程写、多进程读。如果需要多写入者,需要在应用层引入分布式锁或消息队列进行协调。

Q4:如何选择索引类型?

  • 数据量 < 百万级:HNSW,查询最快
  • 数据量百万~十亿,内存有限:RaBitQ(需 AVX2/AVX-512)或 DiskANN
  • 数据量 > 十亿级:DiskANN(仅 Linux x86_64)

六、总结

Zvec 在"进程内向量数据库"这个细分领域做得非常扎实:C++ 内核保证性能、多语言 SDK 保证易用性、WAL 保证可靠性。v0.5.0 带来的全文检索和混合查询能力使其从纯粹的向量搜索工具升级为全能型的嵌入式搜索引擎。对于不想维护独立向量数据库服务、追求极致查询延迟、或者在边缘设备上运行向量检索的开发者来说,Zvec 是一个值得认真考虑的选择。

项目地址:https://github.com/alibaba/zvec | 文档:https://zvec.org | 许可证:Apache 2.0