-
Notifications
You must be signed in to change notification settings - Fork 1
02 Product Overview_zh.md
cyclonedll edited this page Jun 2, 2026
·
1 revision
Quiver 是一款纯 .NET 实现的嵌入式向量数据库,无任何原生依赖,以进程内库的形式运行,无需独立部署数据库服务器。它借鉴 EF Core 的 DbContext 设计模式,让开发者通过 [QuiverKey]、[QuiverVector]、[QuiverIndex] 等声明式特性定义实体与索引策略,框架在运行时自动完成模型发现、索引构建和持久化管理。
核心能力一览:
-
Code-First 声明式建模 —— 像 EF Core 一样用特性标记实体类,框架自动反射发现并注册
QuiverSet<T>集合,零配置即可使用。 - 多种 ANN 索引算法 —— 内置 Flat(暴力搜索)、HNSW(分层可导航小世界图)、IVF(倒排文件索引)、KDTree(KD 树)四种索引,覆盖从小数据量精确搜索到百万级近似搜索的全场景需求。
-
二进制主存储 + 增量追加 —— v4 采用段式二进制格式(
QDB\x04)作为唯一主存储路径。SaveAsync()原子全量快照,AppendAsync()/FlushTombstonesAsync()只追加新段 + 重写 footer,磁盘开销 O(Δ),不会出现 WAL 那种内存翻倍。QuiverDbFile.MergeAsync/InspectAsync提供文件级合并与诊断。JSON / XML 仅作为ExportAsync/ImportAsync旁路。 -
开箱即用的并发安全 ——
QuiverSet<T>内部通过ReaderWriterLockSlim实现读写分离锁,多线程并发搜索与写入天然安全,无需外部加锁。 -
9 种距离度量 + 自定义相似度 —— 内置 Cosine、Euclidean、DotProduct、Manhattan、Chebyshev、Pearson、Hamming、Jaccard、Canberra。还支持用户通过
CustomSimilarity属性接入自定义ISimilarity<float>实现。 -
SIMD 硬件加速 —— 全部相似度实现均基于内部
VectorMathhelper 与Vector<float>SIMD 指令,自动适配 SSE4 / AVX2 / AVX-512 寄存器宽度,无需System.Numerics.Tensors。 -
Schema Migration —— 支持加载时通过
ConfigureMigration<T>()声明属性重命名和值转换规则。新增/删除字段无需配置——新字段取默认值,删除字段静默跳过。
典型应用场景:语义搜索、RAG(检索增强生成)、人脸识别、以图搜图、推荐系统、多模态检索等。
⚠️ Native AOT 兼容性:Quiver 不兼容 Native AOT 发布。框架在启动时通过运行时反射扫描QuiverSet<T>属性及[QuiverKey]/[QuiverVector]/[QuiverIndex]/[QuiverLargeField]特性,并编译表达式树访问器(Expression.Lambda(...).Compile())——这两项机制均不被 Native AOT 支持。Quiver 仅面向标准 JIT / .NET 10 运行时。
| # | 章节 |
|---|---|
| 01 | 版本说明 |
| 02 | 产品概述 |
| 03 | 架构概述 |
| 04 | 快速开始 |
| 05 | 核心概念 |
| 06 | 距离度量 |
| 07 | 索引类型 |
| 08 | CRUD 操作 |
| 09 | 向量搜索 |
| 10 | 持久化存储 |
| 11 | 迁移系统 |
| 11a | 模式迁移 |
| 12 | 多向量字段支持 |
| 13 | 线程安全与并发 |
| 14 | 生命周期管理 |
| 15 | 配置选项 |
| 16 | 内部实现细节 |
| 17 | 完整示例 |
| 18 | API 参考速查表 |
| 19 | 使用建议 |