Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

索引

VSAG 提供了一系列索引实现,它们共享同一套构建式 API、同一种序列化格式、同一组操作 (BuildAddKnnSearchRangeSearchRemoveSerialize / Deserialize 等), 差异在于底层使用的数据结构与折中取舍。

本节覆盖当前活跃维护的索引:

索引文档适用场景
hgraphHGraph通用高召回图索引,量化选项丰富
ivfIVF基于分桶的检索,适合高吞吐批查询与超大规模语料
sindiSINDI稀疏向量(BM25 / 学习稀疏)上的内积检索
pyramidPyramid多租户 / 标签分区的层级索引

brute_force 作为精确检索基线也可使用(见 创建索引examples/cpp/105_index_brute_force.cpp)。

hnswdiskann 保留用于向后兼容,但已 弃用;新部署请优先选择 hgraph(图索引) 或 ivf(分桶索引)。

参数约定

所有索引共享以下顶层构建字段:

字段可选值说明
dim正整数向量维度;构建后不可变
dtypefloat32 / float16 / bfloat16 / int8 / sparsesparse 仅 SINDI 使用
metric_typel2 / ip / cosine查询时必须保持一致(SINDI 仅支持 ip

索引特有的构建参数放在 index_param 子对象中;查询参数放在以索引名命名的子对象中 (例如 hgraphivfsindipyramid)。具体参数定义在各索引页面内给出,也可查阅 索引参数 进行总览。