microsoft/DiskANN

A vector indexing library to bring fast, fresh and filtered search to your database

解决的问题

DiskANN3 提供了一种在不同类型的数据库上实现可扩展、准确且成本效益高的向量索引的方法。它特别解决了在无法完全放入内存的超大规模数据集上执行快速最近邻搜索的挑战。

工作原理

该库采用基于 DataProvider 特性(trait)的可组合架构。开发者通过实现此特性来定义其特定存储系统(如键值存储或 B 树)如何处理向量和邻接列表的存储与检索。DiskANN3 随后提供用于查询和更新这些向量的高层 API。它支持多种内存层级和距离函数,以在成本与性能之间取得平衡。

适用人群

专为需要将高性能向量搜索功能集成到现有数据库引擎中,或构建新型可扩展向量存储的数据库开发者和系统架构师设计。

主要亮点

  • 实时更新:在长时间更新流中保持稳定召回率,无需合并或重建。
  • 灵活存储:包含内存、磁盘、Garnet(K-V 存储)和 Bf-tree 实现的示例提供者。
  • 高级搜索:支持分页、范围过滤和多样性感知的 top-k 搜索。
  • 硬件优化:距离函数和量化器在 x86 和 aarch64 架构上均有实现。
  • 属性过滤:提供钩子以在向量搜索的同时处理谓词过滤。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目