You need to enable JavaScript to run this app.
导航
UpdateData
最近更新时间:2025.01.14 20:00:37首次发布时间:2025.01.10 19:13:06

概述

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

请求参数

参数名

子参数

类型

是否必选

参数说明

data

说明

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

fields

array<map>

指定写入的数据。

注意

必须设置主键字段值

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

TTL

int

数据过期时间,单位为秒。

  • 格式:0 和正整数。
  • 默认值:默认为0,表示数据不过期。
  • 当 ttl 设置为86400时,表示1天后数据自动删除。
  • 数据 ttl 删除,不会立刻更新到索引。

示例

请求参数

//GetCollection获取指定数据集,程序初始化时调用即可,无需重复调用  
collection, _ := service.GetCollection("go")
// 更新 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 := collection.UpdateData(datas)
if err != nil {
     print(err.Error())
}

返回值

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