简单查询

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

我的收藏

简介

本文档提供关于简单查询的相关 API 概览以及 SDK 示例代码。
API
操作描述
可以根据已提取的文件元数据(包含文件名、标签、路径、自定义标签、文本等字段)查询和统计数据集内文件,支持逻辑关系表达方式。

SDK API 参考

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

简单查询

功能说明

可以根据已提取的文件元数据(包含文件名、标签、路径、自定义标签、文本等字段)查询和统计数据集内文件,支持逻辑关系表达方式。
注意:
COS Android SDK 版本需要大于等于 v5.9.30。

示例代码

// APPID
String appid = "1253000000";
DatasetSimpleQueryRequest request = new DatasetSimpleQueryRequest(appid);
DatasetSimpleQuery datasetSimpleQuery = new DatasetSimpleQuery();// 简单查询请求体
request.setDatasetSimpleQuery(datasetSimpleQuery);// 设置请求
// 设置数据集名称,同一个账户下唯一。;是否必传:是
datasetSimpleQuery.datasetName = "test";
// 设置返回文件元数据的最大个数,取值范围为0-200。 使用聚合参数时,该值表示返回分组的最大个数,取值范围为0-2000。 不设置此参数或者设置为0时,则取默认值100。;是否必传:否
datasetSimpleQuery.maxResults = 100;
// 设置排序字段列表。请参考字段和操作符的支持列表。 多个排序字段可使用半角逗号(,)分隔,例如:Size,Filename。 最多可设置5个排序字段。 排序字段顺序即为排序优先级顺序。;是否必传:是
datasetSimpleQuery.sort = "CustomId";
// 设置排序字段的排序方式。取值如下: asc:升序; desc(默认):降序。 多个排序方式可使用半角逗号(,)分隔,例如:asc,desc。 排序方式不可多于排序字段,即参数Order的元素数量需小于等于参数Sort的元素数量。例如Sort取值为Size,Filename时,Order可取asc,desc或asc。 排序方式少于排序字段时,未排序的字段默认取值asc。例如Sort取值为Size,Filename,Order取值为asc时,Filename默认排序方式为asc,即升序排列;是否必传:是
datasetSimpleQuery.order = "desc";
DatasetSimpleQuery.Query query = new DatasetSimpleQuery.Query();
datasetSimpleQuery.query = query;
// 设置操作运算符。枚举值: not:逻辑非。 or:逻辑或。 and:逻辑与。 lt:小于。 lte:小于等于。 gt:大于。 gte:大于等于。 eq:等于。 exist:存在性查询。 prefix:前缀查询。 match-phrase:字符串匹配查询。 nested:字段为数组时,其中同一对象内逻件查询。;是否必传:是
query.operation = "and";
// 设置子查询的结构体。 只有当Operations为逻辑运算符(and、or、not或nested)时,才能设置子查询条件。 在逻辑运算符为and/or/not时,其SubQueries内描述的所有条件需符合父级设置的and/or/not逻辑关系。 在逻辑运算符为nested时,其父级的Field必须为一个类的字段(如:Labels)。 子查询条件SubQueries组的Operation必须为and/or/not中的一个或多个,其Field必须为父级Field的子属性。;是否必传:否
query.subQueries = new ArrayList<>();
DatasetSimpleQuery.SubQueries subQuerie1 = new DatasetSimpleQuery.SubQueries();
subQuerie1.field = "ContentType";
subQuerie1.value = "image/jpeg";
subQuerie1.operation = "eq";
DatasetSimpleQuery.SubQueries subQuerie2 = new DatasetSimpleQuery.SubQueries();
subQuerie2.field = "Size";
subQuerie2.value = "10";
subQuerie2.operation = "gt";
query.subQueries.add(subQuerie1);
query.subQueries.add(subQuerie2);

ciService.datasetSimpleQueryAsync(request, new CosXmlResultListener() {
@Override
public void onSuccess(CosXmlRequest request, CosXmlResult cosResult) {
// result 简单查询的结果
// 详细字段请查看api文档或者SDK源码
DatasetSimpleQueryResult result = (DatasetSimpleQueryResult) cosResult;

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

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