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

向量数据库VikingDB

复制全文
下载 pdf
数据集(Collection)
CreateVikingdbCollection
复制全文
下载 pdf
CreateVikingdbCollection

概述

接口用于创建向量数据库的数据集(Collection),单账号下最多创建 200 个数据集。

  • 每个 Collection 有且仅有一个主键。可以在 Fields 中显式指定 string/int64 主键;未指定时系统自动生成 __AUTO_ID__。
  • 当定义字段 fields 添加了一个向量类型 vector 的字段后,再添加新的字段时,字段类型不可选择 vector 类型。因为目前只支持单向量,不可添加多个向量字段。
  • 创建数据集时,请根据数据类型明确配置方式:若为已有向量数据,请填写 vector 字段;若需对多模态数据(如图文)进行向量化,请配置 vectorize 参数。二者为不同的数据处理逻辑,创建时仅可选择其一,不可同时使用。
  • 一个 Collection 里的 fields 数量上限是 200 个。

方法定义

Go SDK 通过 vikingdb.New(sess) 创建的客户端实例调用 CreateVikingdbCollection(input) 方法发起集合创建请求,input 参数类型为 vikingdb.CreateVikingdbCollectionInput,包含集合名称、描述、项目名称和字段定义等配置。

请求参数

下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。

参数

类型

是否必选

描述

ProjectName

string

否

项目的名称。对应火山引擎“项目”(project)的概念。不填则默认当做default处理。

CollectionName

string

是

数据集的名称,对应 API 字段 CollectionName

  • 只能使用英文字母、数字、下划线_,并以英文字母开头,不能为空
  • 长度(字节)要求:[1, 128]
  • 同账号下,所有 Collection 名称不能重复
  • 同账号下,Collection 数量不超过 200 个

Description

string

否

数据集的描述
最长 65535 字节

Fields

[]FieldForCreateVikingdbCollectionInput

是

数据集中的字段。
限制:数据集内最多 200 个字段。

Vectorize

VectorizeForCreateVikingdbCollectionInput

否

数据集的向量化配置。

  • FieldForCreateVikingdbCollectionInput 参数结构

参数

类型

是否必选

描述

FieldName

string

是

字段名。
必须以英文字母开头,可包含英文字母、数字、下划线和点号,不能以点号结尾,长度不超过 128 Byte。

FieldType

FieldTypeEnum(枚举类型)

是

字段类型。

DefaultValue

interface{}

否

字段默认值。省略时 int64、float32、string、bool、list<int64>、list<string>、date_time、geo_point、list<geo_point> 分别使用 0、0.0、"default"、false、[0]、["default"]、1970-01-01T00:00:00Z、"0, 0"、空列表。主键及 vector、sparse_vector、tensor、text、image、video 不允许显式设置 DefaultValue;text 的隐式默认值为空字符串。

Dim

Int

FieldType 为 vector 时必填

稠密向量维度,范围 [4,4096]。仅 vector 字段可设置该参数,其他字段类型传入 Dim 会返回参数错误。字段维度本身不要求为 4 的倍数;使用 Int8 量化索引时才要求维度为 4 的倍数。

IsPrimaryKey

bool

否

是否为主键字段。可以为数据集指定1个主键字段(string或int64类型)。若没有指定,则使用自动生成的主键,字段名为"AUTO_ID"。

  • VectorizeForCreateVikingdbCollectionInput 参数结构

参数

类型

是否必选

描述

Dense

DenseForCreateVikingdbCollectionInput

是

稠密向量化模型配置

Sparse

SparseForCreateVikingdbCollectionInput

否

稀疏向量化模型配置

  • DenseForCreateVikingdbCollectionInput 和 SparseForCreateVikingdbCollectionInput 参数结构

参数

类型

是否必选

描述

ModelName

ModelNameEnum(枚举类型)

是

模型名称。
枚举值见embedding模型列表。

ModelVersion

string

否

模型版本。若为doubao系模型,则必选模型版本。若为bge系模型,默认为default。

Dim

int

否

稠密向量维度。显式值必须属于所选模型在 embedding 模型列表中声明的可选维度;省略时使用模型默认维度。

TextField

string

否

文本向量化字段名称。

ImageField

string

否

图片向量化字段名称。

VideoField

string

否

视频向量化字段名称。

field_type

字段类型

格式

可为主键

说明

int64

整型数值

是

整数

  • 作为主键时,要求不能为0

float32

浮点数值

否

浮点数

string

字符串

是

字符串

  • 推荐使用方式:当用于枚举值过滤时,推荐长度不超过128字节
  • 硬性限制:要求不超过65535字节;当作为主键时,需满足长度不超过256字节

bool

true/false

否

布尔类型

[]string

字符串数组

否

字符串数组

  • 推荐使用方式:当用于枚举值过滤时,列表长度不超过32个,单元素不超过1024字节
  • 硬性限制:列表长度不超过20000,单元素不超过1024字节,总大小不超过1MB

[]int64

整型数组

否

整数数组

  • 硬性限制:列表长度不超过1024

vector

  • 向量(浮点数数组)
  • float32/float64压缩为bytes后的base64编码

否

稠密向量

  • 硬性限制:长度范围为 [4,4096]。向量字段本身不要求维度为 4 的倍数;使用 Int8 量化索引时才有该要求。

sparse_vector

输入格式 <token_id, token_weight> 的字典列表,来表征稀疏向量的非零位下标及其对应的值,其中 token_id 是 string 类型,token_weight 是 float 类型

否

稀疏向量

text

string

否

若为向量化字段,则值不能为空。(若否,可以为空)

  • 硬性限制:需小于65535字节

image

string

否

若为向量化字段,则值不能为空。(若否,可以为空)

  • 图片tos链接 tos://{bucket}/{object}
  • http/https格式链接
  • 对应图片需满足宽高长度大于14px,像素小于3600万
  • 可参考:多模态向量化

video

map[string]interface{}

否

若为向量化字段,则值不能为空。(若否,可以为空)

  • 视频tos链接 tos://{bucket}/{object}
  • http/https格式url链接
  • 对应视频需满足大小不超过50 MB
  • 可参考:多模态向量化

Plain <br> { <br> "value": "tos://{bucket}/{object}" # 或 http/https 格式 url 链接,该字段必填 <br> "fps": 0.2 # 取值0.2-5,选填 <br> } <br>

date_time

string

否

分钟级别:
yyyy-MM-ddTHH:mmZ或yyyy-MM-ddTHH:mm±HH:mm
秒级别:
yyyy-MM-ddTHH:mm:ssZ或yyyy-MM-ddTHH:mm:ss±HH:mm
毫秒级别:
yyyy-MM-ddTHH:mm:ss.SSSZ或yyyy-MM-ddTHH:mm:ss.SSS±HH:mm
例如:"2025-08-12T11:33:56+08:00"

geo_point

string

否

地理坐标longitude,latitude,其中longitude取值(-180,180),latitude取值(-90,90)
例如:"116.408108,39.915023"

模型列表

模型名称

模型版本

支持向量化类型

默认稠密向量维度

可选稠密向量维度

文本截断长度

支持稀疏向量

可支持instruction

bge-large-zh

(default)

text

1024

1024

512

否

是

bge-m3

(default)

text

1024

1024

8192

是

否

bge-visualized-m3

(default)

text、image及其组合

1024

1024

8192

否

否

doubao-embedding-vision

250615

兼容241215的用法*。*另外,支持full_modal_seq(文/图/视频序列)

2048

2048, 1024

128k

否

是

返回参数

下表仅列出本接口特有的返回参数。更多信息请参见返回结构。

参数

类型

描述

Message

string

有关请求状态的消息。

ResourceId

string

新数据集的 ID。

请求示例

创建带 vectorize(向量化)配置的数据集

运行示例前,请完成以下准备:

  • 在 Go 项目中安装并引入对应版本的 VikingDB SDK;将完整代码保存为 main.go 后执行 go run main.go。
  • AK/SK 在火山引擎控制台“密钥管理”中创建;Host 和 Region 取自地域和访问域名。请按代码的参数或环境变量读取方式完成配置。
  • Collection、Index 名称从 VikingDB 控制台对应资源详情获取;Task ID 使用创建或查询任务接口返回的 ID。请将 <YOUR_...> 占位符替换为真实值。
  • 若示例包含 TOS 路径,请从 TOS 控制台确认桶名和对象路径,并替换为真实的 <YOUR_BUCKET_NAME>/<YOUR_TOS_PATH>。
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.CreateVikingdbCollectionInput{
       CollectionName: volcengine.String("<YOUR_COLLECTION_NAME>"),
       Description:    volcengine.String("Your Collection Description"),
       ProjectName:    volcengine.String("default"),
       Fields: []*vikingdb.FieldForCreateVikingdbCollectionInput{
          {
             FieldName:    volcengine.String("item_id"),
             FieldType:    volcengine.String("int64"),
             IsPrimaryKey: volcengine.Bool(true),
          },
          {
             FieldName: volcengine.String("title"),
             FieldType: volcengine.String("string"),
          },
          {
             FieldName: volcengine.String("content"),
             FieldType: volcengine.String("text"),
          },
          {
             FieldName:    volcengine.String("f_int64"),
             FieldType:    volcengine.String("int64"),
             DefaultValue: 123456,
          },
       },
       Vectorize: &vikingdb.VectorizeForCreateVikingdbCollectionInput{
          Dense: &vikingdb.DenseForCreateVikingdbCollectionInput{
             ModelName: volcengine.String("bge-m3"),
             TextField: volcengine.String("content"),
          },
          Sparse: &vikingdb.SparseForCreateVikingdbCollectionInput{
             ModelName: volcengine.String("bge-m3"),
             TextField: volcengine.String("content"),
          },
       },
    }

    resp, err := svc.CreateVikingdbCollection(&input)
    if err != nil {
       panic(err)
    }

    fmt.Println(resp.Message)
    fmt.Println(resp.ResourceId)
}

创建带 vector 字段的数据集

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.CreateVikingdbCollectionInput{
       CollectionName: volcengine.String("<YOUR_COLLECTION_NAME>"),
       Description:    volcengine.String("Your Collection Description"),
       ProjectName:    volcengine.String("default"),
       Fields: []*vikingdb.FieldForCreateVikingdbCollectionInput{
          {
             FieldName:    volcengine.String("item_id"),
             FieldType:    volcengine.String("int64"),
             IsPrimaryKey: volcengine.Bool(true),
          },
          {
             FieldName: volcengine.String("title"),
             FieldType: volcengine.String("string"),
          },
          {
             FieldName: volcengine.String("dense_vector"),
             FieldType: volcengine.String("vector"),
             Dim:       volcengine.Int32(768),
          },
          {
             FieldName: volcengine.String("sparse_vector"),
             FieldType: volcengine.String("sparse_vector"),
          },
          {
             FieldName:    volcengine.String("f_int64"),
             FieldType:    volcengine.String("int64"),
             DefaultValue: 123456,
          },
       },
    }

    resp, err := svc.CreateVikingdbCollection(&input)
    if err != nil {
       panic(err)
    }

    fmt.Println(resp.Message)
    fmt.Println(resp.ResourceId)
}
最近更新时间:2026.09.08 12:02:59
这个页面对您有帮助吗?
有用
有用
无用
无用