更新元数据索引

最近更新时间:2024-07-04 10:21:51

我的收藏

简介

本文档提供关于更新元数据索引的相关 API 概览以及 SDK 示例代码。
API
操作描述
更新数据集内已索引的一个文件的部分元数据。

SDK API 参考

SDK 所有接口的具体参数与方法说明,请参考 SDK API

更新元数据索引

功能说明

更新数据集内已索引的一个文件的部分元数据。
并非所有的元数据都允许您自定义更新,在您发起更新请求时需要填写数据集,默认会根据该数据集的算子进行元数据重新提取并更新已存在的索引,此外您也可以更新部分自定义的元数据索引,如 CustomTags、CustomId 等字段。
注意:
COS Android SDK 版本需要大于等于 v5.9.30。

示例代码

// APPID
String appid = "1253000000";
UpdateFileMetaIndexRequest request = new UpdateFileMetaIndexRequest(appid);
UpdateFileMetaIndex updateFileMetaIndex = new UpdateFileMetaIndex();// 更新元数据索引请求体
request.setUpdateFileMetaIndex(updateFileMetaIndex);// 设置请求
// 设置数据集名称,同一个账户下唯一。;是否必传:是
updateFileMetaIndex.datasetName = "test";
// 设置元数据索引结果(以回调形式发送至您的回调地址,支持以 http:// 或者 https:// 开头的地址,例如: http://www.callback.com。;是否必传:否
updateFileMetaIndex.callback = "http://www.callback.com";
UpdateFileMetaIndex.File file = new UpdateFileMetaIndex.File();
updateFileMetaIndex.file = file;
// 设置自定义ID。该文件索引到数据集后,作为该行元数据的属性存储,用于和您的业务系统进行关联、对应。您可以根据业务需求传入该值,例如将某个URI关联到您系统内的某个ID。推荐传入全局唯一的值。在查询时,该字段支持前缀查询和排序,详情请见字段和操作符的支表。 ;是否必传:否
file.customId = "001";
// 设置自定义标签。您可以根据业务需要自定义添加标签键值对信息,用于在查询时可以据此为筛选项进行检索,详情请见字段和操作符的支持列表。 ;是否必传:否
file.customLabels = new HashMap<>();
file.customLabels.put("age", "18");
file.customLabels.put("level", "6");
// 设置可选项,文件媒体类型,枚举值: image:图片。 other:其他。 document:文档。 archive:压缩包。 video:视频。 audio:音频。 ;是否必传:否
file.mediaType = "image";
// 设置可选项,文件内容类型(MIME Type),如image/jpeg。 ;是否必传:否
file.contentType = "image/jpeg";
// 设置资源标识字段,表示需要建立索引的文件地址,当前仅支持COS上的文件,字段规则:cos:///,其中BucketName表示COS存储桶名称,ObjectKey表示文件完整路径,例如:cos://examplebucket-1250000000/test1/img.jpg。 注意: 1、仅支持本账号内的COS文件 不支持HTTP开头的地址;是否必传:是
file.uRI = "cos://examplebucket-1250000000/test.jpg";
// 设置输入图片中检索的人脸数量,默认值为20,最大值为20。(仅当数据集模板 ID 为 Official:FaceSearch 有效)。;是否必传:否
file.maxFaceNum = 20;
// 设置自定义人物属性(仅当数据集模板 ID 为 Official:FaceSearch 有效)。;是否必传:否
file.persons = new ArrayList<>();
UpdateFileMetaIndex.Persons person1 = new UpdateFileMetaIndex.Persons();
person1.personId = "11111111";
UpdateFileMetaIndex.Persons person2 = new UpdateFileMetaIndex.Persons();
person2.personId = "22222222";
file.persons.add(person1);
file.persons.add(person2);

ciService.updateFileMetaIndexAsync(request, new CosXmlResultListener() {
@Override
public void onSuccess(CosXmlRequest request, CosXmlResult cosResult) {
// result 更新元数据索引的结果
// 详细字段请查看api文档或者SDK源码
UpdateFileMetaIndexResult result = (UpdateFileMetaIndexResult) cosResult;

}
@Override
public void onFail(CosXmlRequest request, CosXmlClientException clientException, CosXmlServiceException serviceException) {
if (clientException != null) {
clientException.printStackTrace();
} else {
serviceException.printStackTrace();
}
}
});

说明:
更多完整示例,请前往 GitHub 查看。