listVikingIndexes 用于查询和数据集 Collection 关联的索引 Index列表。
Go SDK 通过 vikingdb.New(sess) 创建的客户端实例调用 ListVikingdbIndex(input) 方法发起索引创建请求,input 参数类型为 vikingdb.ListVikingdbIndexInput ,包含索引创建所需的完整配置信息
参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
PageNumber | int | 否 | 翻页页码。起始为1。 |
PageSize | int | 否 | 翻页每页的大小。 |
Filter | FilterForListVikingdbIndexInput | 否 | 过滤条件,如下 |
参数 | 类型 | 描述 |
|---|---|---|
CollectionName | []string | 数据集名称 |
IndexNameKeyword | string | 索引名 |
Status | []string | 状态 |
GO 调用执行上面的任务,返回 Index 实例列表。Index 实例包含的属性如下表所示。
参数 | 一级子参数 | 二级子参数 | 类型 | 描述 |
|---|---|---|---|---|
Indexes | []IndexForListVikingdbIndexOutput | 向量库索引详情列表 | ||
CollectionName | string | 数据集名称 | ||
ProjectName | string | 项目名称 | ||
ResourceId | string | 资源ID | ||
IndexName | string | 索引名称 | ||
Description | string | 索引的自定义描述。 | ||
VectorIndex | VectorIndexForListVikingdbIndexOutput | 向量索引配置 | ||
IndexType | IndexTypeEnum | 索引类型 | ||
Distance | DistanceEnum | 距离类型,衡量向量之间距离的算法。取值如下: | ||
Quant | QuantEnum | 量化方式。量化方式是索引中对向量的压缩方式,可以降低向量间相似性计算的复杂度。基于向量的高维度和大规模特点,采用向量量化可以有效减少向量的存储和计算成本。取值如下:
int8适用于hnsw、hnsw_hybrid、flat索引算法,距离方式为ip、consine。 float适用于hnsw、hnsw_hybrid、flat、diskann索引算法,距离方式为ip、l2、consine。 fix16适用于hnsw、hnsw_hybrid、flat索引算法,距离方式为ip、l2、consine。 pq适用于diskann、ivf索引算法,距离方式为ip、l2、consine。 | ||
HnswM | int | hnsw 索引参数,表示邻居节点个数。
| ||
HnswCef | int | hnsw 索引参数,表示构建图时搜索邻居节点的广度。
| ||
HnswSef | int | hnsw 索引参数,表示线上检索的搜索广度。
| ||
DiskannM | int | diskann参数,标识邻居节点个数。
| ||
DiskannCef | int | diskann参数,表示构建图时搜索邻居节点的广度。
| ||
PqCodeRatio | float | diskann参数,向量维度编码的大小限制。值越大,召回率越高,但会增加内存使用量,范围 (0.0, 0.25]。
| ||
CacheRatio | float | diskann参数,缓存节点数与原始数据的比率,较大的值会提高索引性能并增加内存使用量。范围 [0.0,0.3)。
| ||
ScalarIndex | []ScalarIndexForListVikingdbIndexOutput | 标量字段列表 | ||
CpuQuota | int | 索引检索消耗的 CPU 配额。 | ||
ShardPolicy | string | 索引分片类型,auto为自动分片、custom为自定义分片。 | ||
ShardCount | int | 索引分片数 | ||
ActualCU | int | 实际CU用量 | ||
PageSize | int | 请求时的PageSize值,如果请求时未指定,则为默认值。 | ||
PageNumber | int | 请求时的PageNumber值,如果请求时未指定,则为默认值。 | ||
TotalCount | int | 查询结果的总数 |
package main import ( "fmt" "os" "github.com/volcengine/volcengine-go-sdk/service/vikingdb" "github.com/volcengine/volcengine-go-sdk/volcengine" "github.com/volcengine/volcengine-go-sdk/volcengine/credentials" "github.com/volcengine/volcengine-go-sdk/volcengine/session" ) func main() { var ( accessKey = os.Getenv("VIKINGDB_AK") secretKey = os.Getenv("VIKINGDB_SK") region = "cn-beijing" ) config := volcengine.NewConfig(). WithRegion(region). WithCredentials(credentials.NewStaticCredentials(accessKey, secretKey, "")) sess, err := session.NewSession(config) if err != nil { panic(err) } svc := vikingdb.New(sess) input := &vikingdb.ListVikingdbIndexInput{ Filter: &vikingdb.FilterForListVikingdbIndexInput{ CollectionName: volcengine.StringSlice([]string{"Your Collection Name"}), }, ProjectName: volcengine.String("default"), } output, err := svc.ListVikingdbIndex(input) if err != nil { panic(err) } fmt.Printf("List index response: %+v\n", output) }