updateData 用于为已存在数据的部分字段进行更新。支持 text、标量字段、vector 字段的更新。
参数名 | 子参数 | 类型 | 是否必选 | 参数说明 |
|---|---|---|---|---|
DataObject | fields | array | 是 | 指定写入的数据。
|
TTL | Integer | 否 | 更新后的数据生存时间,单位为秒,取值范围
|
运行示例前,请完成以下准备:
- 在 Java 项目中引入对应版本的 VikingDB SDK,并将示例放入可执行的
main方法后编译运行。- AK/SK 在火山引擎控制台“密钥管理”中创建;Host 和 Region 取自地域和访问域名。请按代码的参数或环境变量读取方式完成配置。
- Collection、Index 名称从 VikingDB 控制台对应资源详情获取;Task ID 使用创建或查询任务接口返回的 ID。请将
<YOUR_...>占位符替换为真实值。- 若示例包含 TOS 路径,请从 TOS 控制台确认桶名和对象路径,并替换为真实的
<YOUR_BUCKET_NAME>/<YOUR_TOS_PATH>。
//getCollection获取指定数据集,程序初始化时调用即可,无需重复调用 CollectionClient collectionClient = new CollectionClient("<YOUR_COLLECTION_NAME>", "api-vikingdb.volces.com", "cn-beijing", "<YOUR_AK>", "<YOUR_SK>", "http");
// 更新 author 和 aim 字段,doc_id 是主键 HashMap<String,Object> field1 = new HashMap<String,Object>(); List<String> author1 = new ArrayList<>(); author1.add("name1"); author1.add("name2"); field1.put("doc_id", "11"); field1.put("aim", true); field1.put("author", author1); DataObject dataObject1 = new DataObject() .setFields(field1) .build(); // 更新 text_vector、text_sparse_vector、like 和 price 字段,doc_id 是主键 HashMap<String,Object> field2 = new HashMap<String,Object>(); field2.put("doc_id", "22"); field2.put("text_vector", genRandomVector(12)); HashMap<String, Double> sparseVector = new HashMap<>(); sparseVector.put("hi", 0.12); sparseVector.put("there", 0.043); sparseVector.put("!", 0.5); field2.put("text_sparse_vector", sparseVector); field2.put("like", 2); field2.put("price", 1.11); DataObject dataObject2 = new DataObject() .setFields(field2) .build(); List<DataObject> dataObjects = new ArrayList<>(); dataObjects.add(dataObject1); dataObjects.add(dataObject2); collectionClient.updateData(dataObjects);
Java 调用执行上面的任务,执行成功无返回信息。