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

向量数据库VikingDB

复制全文
下载 pdf
数据(Data)
UpdateData
复制全文
下载 pdf
UpdateData

概述

UpdateData 用于为已存在数据的部分字段进行更新。支持 text、标量字段、vector 字段的更新。

请求参数

参数名

子参数

类型

是否必选

参数说明

data
Data 结构体或其构成的列表。

fields

array

是

指定写入的数据。
必须设置主键字段值

  • 单次写入的数据数目不超过100。
  • 每条数据作为一个 map,key 为字段名,value 为字段值。
  • 数据写入时 fields 长度最大为65535,超过限制时会返回报错 “fields data is too long, should be less than 65535”。
  • 不同字段类型的字段值格式如下:
  • int64:格式是整型数值。
  • float:格式是浮点数值。
  • string:格式是字符串。
  • bool:格式是 true/false。
  • list:格式是字符串数组。
  • list:格式是整型数组。
  • vector:格式是向量(浮点数数组)。
  • sparse_vector:格式是 json 字典,k 为 string 类型,表示关键词的字面量,v 为 float 类型,表示该关键词的权重数值。
  • text:格式是 map<string, string>,当前支持 text 。
  • text:以 string 形式写入文本原始数据, 如 {"text": "hello world"}。
  • image:当前支持写入tos路径。格式为tos://{bucket}/{object_key}。

TTL

int32

否

更新后的数据生存时间,单位为秒,取值范围 [0, 2147483647]。不传时保持原 TTL,传 0 表示数据不过期。

  • 当 ttl 设置为86400时,表示1天后数据自动删除。
  • 数据 ttl 删除,不会立刻更新到索引。

示例

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

  • 在 Go 项目中安装并引入 VikingDB SDK;将完整代码保存为 main.go 后执行 go run main.go。
  • 将 <YOUR_HOST>、<YOUR_REGION> 和 <YOUR_SCHEME> 替换为地域和访问域名中与实例一致的服务地址、地域和协议。
  • 将 <YOUR_AK>、<YOUR_SK> 替换为火山引擎控制台“密钥管理”中创建的 Access Key ID 和 Secret Access Key;请勿把真实凭证提交到代码仓库。
  • 将 Collection、Index、Task 等资源占位符替换为控制台中对应资源的名称或接口返回的 ID。若示例包含 TOS 路径,请从 TOS 控制台确认桶名和对象路径,并使用 tos://<YOUR_BUCKET_NAME>/<YOUR_OBJECT_KEY> 或文档要求的路径格式。

请求参数

//GetCollection获取指定数据集,程序初始化时调用即可,无需重复调用  
collectionClient := vikingdb.NewCollectionClient("<YOUR_COLLECTION_NAME>", "api-vikingdb.volces.com", "cn-beijing", "<YOUR_AK>", "<YOUR_SK>", "http")
// 更新 author 和 aim 字段,doc_id 是主键
field1 := map[string]interface{}{
     "doc_id": "11",
     "author": []string{"name1", "name2"},
     "aim": true,
}
// 更新 text_vector、text_sparse_vector、like 和 price 字段,doc_id 是主键
field2 := map[string]interface{}{
     "doc_id": "22",
     "text_vector": genRandomVector(12),
     "text_sparse_vector": map[string]float64{"hello": 0.34, "world": 0.03, "!": 0.11},
     "like": 2,
     "price": 2.22,
}
var data1 vikingdb.Data
var data2 vikingdb.Data
data1.Fields = field1
data2.Fields = field2
datas := []vikingdb.Data{
     data1,
     data2,
}
err := collectionClient.UpdateData(datas)
if err != nil {
     print(err.Error())
}

返回值

Go 调用执行上面的任务,执行成功无返回信息。

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