CreateIndex 用于为指定的数据集 Collection 创建索引 Index。
创建索引可以加速向量的相似度搜索,它根据指定的索引算法和数据结构将向量库中的原始数据进行分组排序,提高相似度搜索的效率和准确性,是驱动向量数据库在短时间内筛选出候选的核心所在。
对于索引的数据集只存在稠密向量(即 Vector 类型字段)的情况,我们称这种索引为纯稠密索引;对于索引的数据集中存在稠密向量和稀疏向量(Vector 和 Sparse_Vector 类型字段)的情况,我们称这种索引为混合索引。
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
CollectionName |
| 是 | 数据集名称 |
IndexName |
| 是 | 索引名称 |
Description |
| 否 | 索引描述 |
CpuQuota |
| 否 | 索引 CPU 用量 |
ShardConfig |
| 是 | 索引分片配置 |
VectorIndex |
| 否 | 向量索引配置 |
PartitionBy |
| 否 | 子索引划分字段 |
ScalarIndexes |
| 否 | 标量过滤字段 |
type ShardConfig = | { ShardPolicy: ShardPolicy.Custom; ShardCount: number; } | { ShardPolicy: ShardPolicy.Auto; };
enum IndexType { Hnsw = "hnsw", HnswHybrid = "hnsw_hybrid", Flat = "flat", Ivf = "ivf", Diskann = "diskann", }
enum Distance { Ip = "ip", l2 = "l2", Cosine = "cosine", }
enum Quant { Int8 = "int8", Float = "float", Fix16 = "fix16", PQ = "pq", }
type VectorIndex = | HnswVector | HnswHybridVector | FlatVector | DiskannVector | IvfVector type HnswVector = HnswVector1 | HnswVector2 type HnswHybridVector = HnswHybridVector1 | HnswHybridVector2 type FlatVector = FlatVector1 | FlatVector2
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
IndexType |
| 是 | 索引类型 |
Distance |
| 是 | 距离类型 |
Quant |
| 是 | 量化方式 |
HnswM |
| 否 | Hnsw 索引参数,表示邻居节点个数 |
HnswCef |
| 否 | Hnsw 索引参数,表示构建图时搜索邻居节点的广度 |
HnswSef |
| 否 | Hnsw 索引参数,表示线上检索的搜索广度 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
IndexType |
| 是 | 索引类型 |
Distance |
| 是 | 距离类型 |
Quant |
| 是 | 量化方式 |
HnswM |
| 否 | Hnsw 索引参数,表示邻居节点个数 |
HnswCef |
| 否 | Hnsw 索引参数,表示构建图时搜索邻居节点的广度 |
HnswSef |
| 否 | Hnsw 索引参数,表示线上检索的搜索广度 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
IndexType |
| 是 | 索引类型 |
Distance |
| 是 | 距离类型 |
Quant |
| 是 | 量化方式 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
IndexType |
| 是 | 索引类型 |
Distance |
| 是 | 距离类型 |
Quant |
| 是 | 量化方式 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
IndexType |
| 是 | 索引类型 |
Distance |
| 是 | 距离类型 |
Quant |
| 是 | 量化方式 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
IndexType |
| 是 | 索引类型 |
Distance |
| 是 | 距离类型 |
Quant |
| 是 | 量化方式 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
IndexType |
| 是 | 索引类型 |
Distance |
| 是 | 距离类型 |
Quant |
| 是 | 量化方式 |
DiskannM |
| 否 | Diskann 参数,表示邻居节点个数 |
DiskannCef |
| 否 | Diskann 参数,表示构建图时搜索邻居节点的广度 |
CacheRatio |
| 否 | Diskann 参数,缓存节点数与原始数据的比率 |
PqCodeRatio |
| 否 | Diskann 参数,向量维度编码的大小限制 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
IndexType |
| 是 | 索引类型 |
Distance |
| 是 | 距离类型 |
Quant |
| 是 | 量化方式 |
declare class VikingdbResponse { readonly OriginalRequest: string; readonly LogId: string; constructor( OriginalRequest: string, LogId: string ); }
import { vikingdb } from '@volcengine/openapi' declare const service: vikingdb.VikingdbService // 替换为你初始化好的实例 await service.index.CreateIndex({ CollectionName: 'test_collection_1', IndexName: 'test_index_1', Description: 'Index Description', // optional CpuQuota: 2, // optional ShardConfig: { ShardPolicy: vikingdb.index.ShardPolicy.Custom, ShardCount: 10 }, // 自定义分片 ShardConfig: { ShardPolicy: vikingdb.index.ShardPolicy.Auto, }, // 自动分片 VectorIndex: { IndexType: vikingdb.index.IndexType.Hnsw, Distance: vikingdb.index.Distance.Ip, Quant: vikingdb.index.Quant.Int8, HnswM: 10, // optional HnswCef: 10, // optional HnswSef: 10, // optional }, // optional,HnswVector1 VectorIndex: { IndexType: vikingdb.index.IndexType.Hnsw, Distance: vikingdb.index.Distance.l2, Quant: vikingdb.index.Quant.Float, HnswM: 10, // optional HnswCef: 10, // optional HnswSef: 10, // optional }, // optional,HnswVector2 VectorIndex: { IndexType: vikingdb.index.IndexType.HnswHybrid, Distance: vikingdb.index.Distance.Cosine, Quant: vikingdb.index.Quant.Int8, }, // optional,HnswHybridVector1 VectorIndex: { IndexType: vikingdb.index.IndexType.HnswHybrid, Distance: vikingdb.index.Distance.L2, Quant: vikingdb.index.Quant.Float, }, // optional,HnswHybridVector2 VectorIndex: { IndexType: vikingdb.index.IndexType.Flat, Distance: vikingdb.index.Distance.Ip, Quant: vikingdb.index.Quant.Int8, }, // optional,FlatVector1 VectorIndex: { IndexType: vikingdb.index.IndexType.Flat, Distance: vikingdb.index.Distance.l2, Quant: vikingdb.index.Quant.Float, }, // optional,FlatVector2 VectorIndex: { IndexType: vikingdb.index.IndexType.Diskann, Distance: vikingdb.index.Distance.Ip, Quant: vikingdb.index.Quant.Pq, DiskannM: 10, // optional DiskannCef: 10, // optional CacheRatio: 10, //optional PqCodeRatio: 10, //optional }, // optional,DiskannVector VectorIndex: { IndexType: vikingdb.index.IndexType.Ivf, Distance: vikingdb.index.Distance.Ip, Quant: vikingdb.index.Quant.Pq, }, // optional,IvfVector PartitionBy: 'Id', // optional Scalarindexes: ['Name'], // optinal })