简介
本文档提供关于简单查询的相关 API 概览以及 SDK 示例代码。
API | 操作描述 |
可以根据已提取的文件元数据(包含文件名、标签、路径、自定义标签、文本等字段)查询和统计数据集内文件,支持逻辑关系表达方式。 |
SDK API 参考
简单查询
功能说明
可以根据已提取的文件元数据(包含文件名、标签、路径、自定义标签、文本等字段)查询和统计数据集内文件,支持逻辑关系表达方式。
注意:
COS Android SDK 版本需要大于等于 v5.9.30。
示例代码
// APPIDString 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() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult cosResult) {// result 简单查询的结果// 详细字段请查看api文档或者SDK源码DatasetSimpleQueryResult result = (DatasetSimpleQueryResult) cosResult;}@Overridepublic void onFail(CosXmlRequest request, CosXmlClientException clientException, CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});
说明: