You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
索引(index)
CreateIndex
复制全文
下载 pdf
CreateIndex

概述

CreateIndex 用于为指定的数据集 Collection 创建索引 Index。
创建索引可以加速向量的相似度搜索,它根据指定的索引算法和数据结构将向量库中的原始数据进行分组排序,提高相似度搜索的效率和准确性,是驱动向量数据库在短时间内筛选出候选的核心所在。
对于索引的数据集只存在稠密向量(即 Vector 类型字段)的情况,我们称这种索引为纯稠密索引;对于索引的数据集中存在稠密向量和稀疏向量(Vector 和 Sparse_Vector 类型字段)的情况,我们称这种索引为混合索引。

请求参数

字段名

类型

是否必传

说明

CollectionName

string

是

数据集名称

IndexName

string

是

索引名称

Description

string

否

索引描述

CpuQuota

number

否

索引 CPU 用量

ShardConfig

ShardConfig

是

索引分片配置

VectorIndex

VectorIndex

否

向量索引配置

PartitionBy

string

否

子索引划分字段

ScalarIndexes

string[]

否

标量过滤字段

ShardConfig

type ShardConfig =
  | {
      ShardPolicy: ShardPolicy.Custom;
      ShardCount: number;
    }
  | {
      ShardPolicy: ShardPolicy.Auto;
    };

IndexType

enum IndexType {
  Hnsw = "hnsw",
  HnswHybrid = "hnsw_hybrid",
  Flat = "flat",
  Ivf = "ivf",
  Diskann = "diskann",
}

Distance

enum Distance {
  Ip = "ip",
  l2 = "l2",
  Cosine = "cosine",
}

Quant

enum Quant {
  Int8 = "int8",
  Float = "float",
  Fix16 = "fix16",
  PQ = "pq",
}

VectorIndex

type VectorIndex = 
    | HnswVector
    | HnswHybridVector 
    | FlatVector 
    | DiskannVector 
    | IvfVector
    
type HnswVector = HnswVector1 | HnswVector2
type HnswHybridVector = HnswHybridVector1 | HnswHybridVector2
type FlatVector = FlatVector1 | FlatVector2

HnswVector1

字段名

类型

是否必传

说明

IndexType

IndexType.Hnsw

是

索引类型

Distance

Distance.Ip
Distance.Cosine

是

距离类型

Quant

Quant.Int8
Quant.Float
Quant.Fix16

是

量化方式

HnswM

number

否

Hnsw 索引参数,表示邻居节点个数

HnswCef

number

否

Hnsw 索引参数,表示构建图时搜索邻居节点的广度

HnswSef

number

否

Hnsw 索引参数,表示线上检索的搜索广度

HnswVector2

字段名

类型

是否必传

说明

IndexType

IndexType.Hnsw

是

索引类型

Distance

Distance.l2

是

距离类型

Quant

Quant.Float
Quant.Fix16

是

量化方式

HnswM

number

否

Hnsw 索引参数,表示邻居节点个数

HnswCef

number

否

Hnsw 索引参数,表示构建图时搜索邻居节点的广度

HnswSef

number

否

Hnsw 索引参数,表示线上检索的搜索广度

HnswHybridVector1

字段名

类型

是否必传

说明

IndexType

IndexType.HnswHybrid

是

索引类型

Distance

Distance.Ip
Distance.Cosine

是

距离类型

Quant

Quant.Int8
Quant.Float
Quant.Fix16

是

量化方式

HnswHybridVector2

字段名

类型

是否必传

说明

IndexType

IndexType.HnswHybrid

是

索引类型

Distance

Distance.l2

是

距离类型

Quant

Quant.Float
Quant.Fix16

是

量化方式

FlatVector1

字段名

类型

是否必传

说明

IndexType

IndexType.Flat

是

索引类型

Distance

Distance.Ip
Distance.Cosine

是

距离类型

Quant

Quant.Int8
Quant.Float
Quant.Fix16

是

量化方式

FlatVector2

字段名

类型

是否必传

说明

IndexType

IndexType.Flat

是

索引类型

Distance

Distance.l2

是

距离类型

Quant

Quant.Float
Quant.Fix16

是

量化方式

DiskannVector

字段名

类型

是否必传

说明

IndexType

IndexType.Diskann

是

索引类型

Distance

Distance

是

距离类型

Quant

Quant.Float
Quant.PQ

是

量化方式

DiskannM

number

否

Diskann 参数,表示邻居节点个数

DiskannCef

number

否

Diskann 参数,表示构建图时搜索邻居节点的广度

CacheRatio

number

否

Diskann 参数,缓存节点数与原始数据的比率

PqCodeRatio

number

否

Diskann 参数,向量维度编码的大小限制

IvfVector

字段名

类型

是否必传

说明

IndexType

IndexType.Ivf

是

索引类型

Distance

Distance.Ip
Distance.Cosine

是

距离类型

Quant

Quant.PQ

是

量化方式

响应参数
declare class VikingdbResponse {
  readonly OriginalRequest: string;
  readonly LogId: string;
  constructor(
    OriginalRequest: string,
    LogId: string
  );
}

参考示例

以下示例分别展示两种配置场景。每次调用只能选择一种分片策略和一种向量索引配置。

import { vikingdb } from '@volcengine/openapi'

declare const service: vikingdb.VikingdbService // 替换为你初始化好的实例

// 场景一:自定义分片 + HNSW
await service.index.CreateIndex({
  CollectionName: 'test_collection_1',
  IndexName: 'test_index_hnsw',
  CpuQuota: 2,
  ShardConfig: {
    ShardPolicy: vikingdb.index.ShardPolicy.Custom,
    ShardCount: 10,
  },
  VectorIndex: {
    IndexType: vikingdb.index.IndexType.Hnsw,
    Distance: vikingdb.index.Distance.Ip,
    Quant: vikingdb.index.Quant.Int8,
    HnswM: 20,
    HnswCef: 400,
    HnswSef: 400,
  },
})

// 场景二:自动分片 + Flat
await service.index.CreateIndex({
  CollectionName: 'test_collection_1',
  IndexName: 'test_index_flat',
  ShardConfig: { ShardPolicy: vikingdb.index.ShardPolicy.Auto },
  VectorIndex: {
    IndexType: vikingdb.index.IndexType.Flat,
    Distance: vikingdb.index.Distance.L2,
    Quant: vikingdb.index.Quant.Float,
  },
})

示例修正

参考示例已拆分为“自定义分片 + HNSW”和“自动分片 + Flat”两个独立 CreateIndex 调用;每个对象只包含一个 ShardConfig 和一个 VectorIndex,可直接通过 TypeScript 语法检查。

最近更新时间:2026.09.08 15:30:56
这个页面对您有帮助吗?
有用
有用
无用
无用