Consulta e agrega arquivos em um conjunto de dados e oferece suporte a expressões lógicas.
Descrição da operação
-
Antes de chamar esta operação, certifique-se de compreender totalmente os métodos de cobrança e os preços do Intelligent Media Management.
-
Antes de chamar esta operação, certifique-se de ter indexado arquivos em um conjunto de dados usando vinculações (CreateBinding) ou indexação ativa (IndexFileMeta ou BatchIndexFileMeta).
-
Os resultados retornados são apenas exemplos. Dependendo da configuração do modelo de fluxo de trabalho, as categorias e o conteúdo dos metadados de arquivo obtidos podem diferir dos exemplos. Se tiver alguma dúvida, participe do grupo do DingTalk para enviar feedback. Para obter o ID do grupo do DingTalk, consulte Fale conosco.
Limites
-
Cada consulta retorna no máximo 100 arquivos.
-
Cada consulta retorna no máximo 2.000 informações de estatísticas de agregação.
-
Há suporte para no máximo 100 condições de subconsulta.
-
Há suporte para uma profundidade máxima de aninhamento de 5 níveis para subconsultas.
Exemplos de condições de consulta
Para pesquisar imagens JPEG com tamanho superior a 1.000 pixels, especifique o parâmetro Query da seguinte forma:
{
"SubQueries":[
{
"Field":"ContentType",
"Value": "image/jpeg",
"Operation":"eq"
},
{
"Field":"ImageWidth",
"Value":"1000",
"Operation":"gt"
}
],
"Operation":"and"
}
Para pesquisar todos os arquivos em
oss://examplebucket/path/que contenham a tagTVouSpeakere sejam maiores que 10 MB, especifique o parâmetro Query da seguinte forma:
Aqui, TV e Speaker são tags diferentes do mesmo arquivo e existem como dois objetos independentes no campo Labels. Observe a diferença entre este e o próximo exemplo.
{
"SubQueries": [
{
"Field": "URI",
"Value": "oss://examplebucket/path/",
"Operation": "prefix"
},
{
"Field": "Size",
"Value": "1048576",
"Operation": "gt"
},
{
"SubQueries": [
{
"Field": "Labels.LabelName",
"Value": "TV",
"Operation": "eq"
},
{
"Field": "Labels.LabelName",
"Value": "Speaker",
"Operation": "eq"
}
],
"Operation": "or"
}
],
"Operation": "and"
}
Para excluir arquivos que contenham informações de rosto de um homem com mais de 36 anos, especifique o parâmetro Query da seguinte forma:
Ao contrário do exemplo anterior, isso exige que um único rosto atenda a ambas as condições: ter mais de 36 anos e ser do sexo masculino. Isso é diferente de um requisito em que uma imagem contém vários rostos, sendo um do sexo masculino e outro com mais de 36 anos. Nesta solicitação, você deve usar uma consulta nested para garantir que as condições sejam atendidas dentro do mesmo elemento.
{
"Operation": "not",
"SubQueries": [{
"Operation": "nested",
"SubQueries": [{
"Operation": "and",
"SubQueries": [{
"Field": "Figures.Age",
"Operation": "gt",
"Value": "36"
}, {
"Field": "Figures.Gender",
"Operation": "eq",
"Value": "male"
}]
}]
}]
}
Para pesquisar imagens JPEG que possuem tags personalizadas e tags de sistema, especifique o parâmetro Query da seguinte forma:
{
"SubQueries":[
{
"Field":"ContentType",
"Value": "image/jpeg",
"Operation":"eq"
},
{
"Field":"CustomLabels.test",
"Operation":"exist"
},
{
"Field":"Labels.LabelName",
"Operation":"exist"
}
],
"Operation":"and"
}
Com base nas condições de pesquisa anteriores, você também pode usar operações de agregação para coletar estatísticas e analisar diferentes dados. Por exemplo, você pode calcular o tamanho total, a contagem, a média ou os valores extremos de todos os arquivos que atendem às condições de pesquisa, ou coletar estatísticas sobre a distribuição de tamanho de todas as imagens que atendem às condições de pesquisa.
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
imm:SimpleQuery |
list |
*Conjunto de dados.
|
Nenhuma | Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| NextToken |
string |
Não |
O token usado para paginação quando o número total de arquivos excede o valor de MaxResults. A lista de arquivos é retornada em ordem lexicográfica a partir de NextToken. Defina este parâmetro como vazio ao chamar esta operação pela primeira vez. |
MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw== |
| MaxResults |
integer |
Não |
|
10 |
| ProjectName |
string |
Sim |
O nome do projeto. Para obter mais informações sobre como obter o nome do projeto, consulte Criar um projeto. |
test-project |
| DatasetName |
string |
Sim |
O nome do conjunto de dados. Para obter mais informações sobre como obter o nome do conjunto de dados, consulte Criar um conjunto de dados. |
test-dataset |
| Query | SimpleQuery |
Não |
As condições de consulta simples. Clique no link à esquerda para ver os detalhes. |
|
| Sort |
string |
Não |
A lista de campos de ordenação. Para obter mais informações, consulte Campos e operadores suportados. Nota
|
Size,Filename |
| Order |
string |
Não |
A ordem de classificação dos campos de ordenação. Valores válidos:
Nota
|
asc,desc |
| Aggregations |
array<object> |
Não |
A lista de informações de campos de agregação. Importante Ao usar uma consulta de agregação, apenas os resultados da agregação são retornados, e a lista de metadados correspondentes não é retornada. |
|
|
object |
Não |
A estrutura das informações do campo de agregação. |
||
| Field |
string |
Não |
O nome do campo. Para obter mais informações sobre os campos suportados, consulte Campos e operadores suportados. |
Size |
| Operation |
string |
Não |
O operador para o campo de agregação. Valores válidos:
|
sum |
| WithFields |
array |
Não |
Especifica os campos específicos a serem retornados em vez de todos os campos de metadados existentes. Isso pode ser usado para reduzir o tamanho da estrutura retornada. Se você não especificar este parâmetro ou deixá-lo vazio, todos os campos serão retornados. |
|
|
string |
Não |
O nome do campo a ser retornado. Para obter mais informações sobre os nomes de campos suportados, consulte File. |
Filename |
|
| WithoutTotalHits |
boolean |
Não |
Especifica se o número total de registros correspondentes deve ser retornado. Valores válidos:
|
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
A estrutura da resposta. |
||
| Aggregations |
array<object> |
A lista de informações de campos de agregação. Este parâmetro é retornado apenas quando Aggregations na solicitação não está vazio. |
|
|
array<object> |
A estrutura das informações do campo de agregação. |
||
| Field |
string |
O nome do campo de agregação. |
Size |
| Groups |
array<object> |
A lista de resultados de agrupamento e agregação. Este parâmetro é retornado apenas quando existe uma Operation do tipo group em Aggregations da solicitação. |
|
|
object |
O resultado do agrupamento e da agregação. |
||
| Count |
integer |
A contagem total do agrupamento e da agregação. |
5 |
| Value |
string |
O valor do agrupamento e da agregação. |
100 |
| Operation |
string |
A operação de agregação para o campo de agregação. |
sum |
| Value |
number |
O resultado estatístico da agregação. |
200 |
| Files |
array |
A lista de informações de arquivos. Este parâmetro é retornado apenas quando Aggregations na solicitação está vazio. |
|
| File |
A estrutura das informações do arquivo. |
||
| NextToken |
string |
O token usado para paginação quando o número total de arquivos excede o valor de MaxResults. Ao listar as informações do arquivo na próxima vez, defina NextToken com este valor para retornar os resultados restantes. Este parâmetro tem um valor apenas quando nem todos os arquivos são retornados. |
MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw== |
| RequestId |
string |
O ID da solicitação. |
2C5C1E0F-D8B8-4DA0-8127-EC32C771**** |
| TotalHits |
integer |
O número de registros correspondentes. |
10 |
Exemplos
Resposta de sucesso
JSON formato
{
"Aggregations": [
{
"Field": "Size",
"Groups": [
{
"Count": 5,
"Value": "100"
}
],
"Operation": "sum",
"Value": 200
}
],
"Files": [
{
"OwnerId": "102321002467****",
"ProjectName": "test-project",
"DatasetName": "test-dataset",
"ObjectType": "file",
"ObjectId": "75d5de2c50754e3dadd5c35dbca5f9949369e37eb342a73821f690c94c36c7f7",
"UpdateTime": "2021-06-29T14:50:13.011643661+08:00",
"CreateTime": "2021-06-29T14:50:13.011643661+08:00",
"URI": "oss://test-bucket/test-object.jpg",
"OSSURI": "oss://examplebucket/sampleobject.jpg",
"Filename": "sampleobject.jpg",
"MediaType": "image",
"ContentType": "image/jpeg",
"Size": 1000,
"FileHash": "1d9c280a7c4f67f7ef873e28449dbe17",
"FileModifiedTime": "2021-06-29T14:50:13.011643661+08:00",
"FileCreateTime": "2021-06-29T14:50:13.011643661+08:00",
"FileAccessTime": "2021-06-29T14:50:13.011643661+08:00",
"ProduceTime": "2021-06-29T14:50:13.011643661+08:00",
"LatLong": "30.134390,120.074997",
"Timezone": "\"\"",
"Addresses": [
{
"Language": "zh-Hans",
"AddressLine": "中国浙江省杭州市余杭区文一西路969号",
"Country": "中国",
"Province": "浙江省",
"City": "杭州市",
"District": "余杭区",
"Township": "文一西路"
}
],
"TravelClusterId": "-",
"Orientation": 0,
"Figures": [
{
"FigureId": "868a9e74-cde5-4c7a-9013-28bb984****",
"FigureConfidence": 1,
"FigureClusterId": "Cluster-dbe72fec-b84c-4ab6-885b-3678e64****",
"FigureClusterConfidence": 1,
"FigureType": "face",
"Age": 29,
"AgeSD": 5,
"Gender": "female",
"GenderConfidence": 1,
"Emotion": "happiness",
"EmotionConfidence": 0.70784568786621,
"FaceQuality": 0.960875928401947,
"Boundary": {
"Width": 200,
"Height": 300,
"Left": 10,
"Top": 30,
"Polygon": [
{
"X": 10,
"Y": 10
}
]
},
"Mouth": "close",
"MouthConfidence": 1,
"Beard": "none",
"BeardConfidence": 1,
"Hat": "none",
"HatConfidence": 1,
"Mask": "none",
"MaskConfidence": 1,
"Glasses": "none",
"GlassesConfidence": 0.8,
"Sharpness": 0.7,
"Attractive": 0.96,
"HeadPose": {
"Pitch": 18.385589599609375,
"Roll": 4.204030513763428,
"Yaw": 2.4945924282073975
}
}
],
"FigureCount": 10,
"Labels": [
{
"Language": "zh-Hans",
"LabelName": "椅子",
"LabelLevel": 2,
"LabelConfidence": 0.95,
"ParentLabelName": "家具",
"CentricScore": 0.877,
"LabelAlias": "座椅",
"Clips": [
{
"TimeRange": [
100
]
}
]
}
],
"Title": "test",
"ImageWidth": 270,
"ImageHeight": 500,
"EXIF": "{\"Compression\":{\"value\":\"6\"},\"DateTime\":{\"value\":\"2020:08:19 17:11:11\"}}",
"ImageScore": {
"OverallQualityScore": 0.736
},
"CroppingSuggestions": [
{
"AspectRatio": "2:3",
"Confidence": 0.742,
"Boundary": {
"Width": 200,
"Height": 300,
"Left": 10,
"Top": 30,
"Polygon": [
{
"X": 10,
"Y": 10
}
]
}
}
],
"OCRContents": [
{
"Language": "zh-hans",
"Contents": "欢迎使用智能媒体管理",
"Confidence": 0.8254936695098877,
"Boundary": {
"Width": 200,
"Height": 300,
"Left": 10,
"Top": 30,
"Polygon": [
{
"X": 10,
"Y": 10
}
]
}
}
],
"VideoWidth": 1080,
"VideoHeight": 1920,
"VideoStreams": [
{
"Index": 0,
"Language": "en",
"CodecName": "h264",
"CodecLongName": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
"Profile": "High",
"CodecTimeBase": "1373627/83160000",
"CodecTagString": "avc1",
"CodecTag": "0x31637661",
"Width": 1280,
"Height": 720,
"HasBFrames": 2,
"SampleAspectRatio": "1:1",
"DisplayAspectRatio": "16:9",
"PixelFormat": "yuv420p",
"Level": 40,
"FrameRate": "25/1",
"AverageFrameRate": "25/1",
"TimeBase": "1/12800",
"StartTime": 0,
"Duration": 22.88,
"Bitrate": 5407765,
"FrameCount": 572,
"Rotate": "90",
"BitDepth": 8,
"ColorSpace": "bt709",
"ColorRange": "tv",
"ColorTransfer": "bt709",
"ColorPrimaries": "bt709"
}
],
"Subtitles": [
{
"Index": 2,
"Language": "en",
"CodecName": "mov_text",
"CodecLongName": "MOV text",
"CodecTagString": "tx3g",
"CodecTag": "0x67337874",
"StartTime": 0,
"Duration": 71.378,
"Bitrate": 74,
"Content": "欢迎",
"Width": 600,
"Height": 30
}
],
"AudioStreams": [
{
"Index": 1,
"Language": "en",
"CodecName": "aac",
"CodecLongName": "AAC (Advanced Audio Coding)",
"CodecTimeBase": "1/44100",
"CodecTagString": "mp4a",
"CodecTag": "0x6134706d",
"TimeBase": "1/48000",
"StartTime": 0.0235,
"Duration": 3.690667,
"Bitrate": 320087,
"FrameCount": 173,
"Lyric": "test",
"SampleFormat": "fltp",
"SampleRate": 48000,
"Channels": 2,
"ChannelLayout": "stereo"
}
],
"Artist": "Jane",
"AlbumArtist": "Jane",
"AudioCovers": [
{
"ImageWidth": 500,
"ImageHeight": 820,
"EXIF": "{\"FileSize\":{\"value\":\"29304\"},\"Format\":{\"value\":\"jpg\"}}",
"ImageScore": {
"OverallQualityScore": 0.736
},
"CroppingSuggestions": [
{
"AspectRatio": "2:3",
"Confidence": 0.742
}
],
"OCRContents": [
{
"Language": "zh-hans",
"Contents": "欢迎使用智能媒体管理",
"Confidence": 0.8254936695098877
}
]
}
],
"Composer": "Jane",
"Performer": "Jane",
"Language": "eng",
"Album": "FirstAlbum",
"PageCount": 5,
"ETag": "\"1D9C280A7C4F67F7EF873E28449****\"",
"CacheControl": "no-cache",
"ContentDisposition": "attachment; filename =test.jpg",
"ContentEncoding": "UTF-8",
"ContentLanguage": "zh-CN",
"AccessControlAllowOrigin": "https://aliyundoc.com",
"AccessControlRequestMethod": "PUT",
"ServerSideEncryptionCustomerAlgorithm": "SM4",
"ServerSideEncryption": "AES256",
"ServerSideDataEncryption": "SM4",
"ServerSideEncryptionKeyId": "9468da86-3509-4f8d-a61e-6eab1eac****",
"OSSStorageClass": "Standard",
"OSSCRC64": "559890638950338001",
"ObjectACL": "default",
"ContentMd5": "HZwoCnxPZ/fvhz4oRJ2+Fw==",
"OSSUserMeta": {
"key": "val"
},
"OSSTaggingCount": 2,
"OSSTagging": {
"key": "val"
},
"OSSExpiration": "2120-01-01T12:00:00.000Z",
"OSSVersionId": "CAEQNhiBgMDJgZCA0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY0****",
"OSSDeleteMarker": "CAEQMhiBgIDXiaaB0BYiIGQzYmRkZGUxMTM1ZDRjOTZhNjk4YjRjMTAyZjhl****",
"OSSObjectType": "Normal",
"CustomId": "\t\nmember-image-id-0001",
"CustomLabels": {
"MemberName": "Tim",
"Enabled": "True",
"ItemCount": "10"
},
"StreamCount": 1,
"ProgramCount": 1,
"FormatName": "mov",
"FormatLongName": "QuickTime / MOV",
"StartTime": 0,
"Bitrate": 13091201,
"Duration": 15.263,
"SemanticTypes": [
"content"
],
"Elements": [
{
"ElementContents": [
{
"Type": "text",
"Content": "文本片段",
"URL": "http://aliyun.com",
"TimeRange": [
500
]
}
],
"ObjectId": "id1",
"ElementType": "title - 标题; image - 图片 ; table - 表格 ; narrative-text - 正文",
"SemanticSimilarity": 0.8,
"ElementRelations": [
{
"Type": "child,parent",
"ObjectId": "id1"
}
]
}
],
"SceneElements": [
{
"TimeRange": [
100
],
"FrameTimes": [
30
],
"VideoStreamIndex": 0,
"Labels": [
{
"Language": "zh-Hans",
"LabelName": "椅子",
"LabelLevel": 2,
"LabelConfidence": 0.95,
"ParentLabelName": "家具",
"CentricScore": 0.877,
"LabelAlias": "座椅",
"Clips": [
{
"TimeRange": [
100
]
}
]
}
]
}
],
"OCRTexts": "阿里云IMM",
"Reason": "[InternalError] The request has been failed due to some unknown error. status: 500, requestId: CC5ACFBD-BB7A-496D-A9D6-****",
"ObjectStatus": "Indexed",
"Insights": {
"Video": {
"Description": "无。",
"Caption": "视频中展示了两个不同场景:一个是静止的白色盘子、黑色瓶子和透明玻璃杯,另一个是手拿着标有“YEZOLU”的洗发水瓶在浴室中缓慢上移。"
},
"Image": {
"Caption": "无。",
"Description": "图片中有一人,穿着深色西装外套,内搭白色衬衫。背景为渐变的浅蓝色至灰色。"
}
}
}
],
"NextToken": "MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw==",
"RequestId": "2C5C1E0F-D8B8-4DA0-8127-EC32C771****",
"TotalHits": 10
}
Códigos de erro
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.