Mengkueri dan mengagregasi file dalam dataset. Mendukung ekspresi hubungan logis.
Deskripsi operasi
-
Sebelum menggunakan operasi ini, pastikan Anda telah sepenuhnya memahami metode penagihan dan harga Intelligent Media Management (IMM).
-
Sebelum memanggil operasi ini, pastikan bahwa Anda telah mengindeks file ke dalam dataset dengan pengikatan (CreateBinding) atau dengan pengindeksan aktif (IndexFileMeta atau BatchIndexFileMeta).
-
Hasil yang dikembalikan hanyalah contoh. Kategori dan konten metadata file yang Anda peroleh dapat berbeda dari contoh berdasarkan konfigurasi template alur kerja. Jika Anda memiliki pertanyaan, bergabunglah dengan grup DingTalk untuk memberikan umpan balik. Untuk nomor grup DingTalk, lihat Hubungi kami.
Batas penggunaan
-
Maksimum 100 catatan informasi file dapat dikembalikan per kueri.
-
Maksimum 2000 catatan statistik agregasi dapat dikembalikan per kueri.
-
Maksimum 100 kondisi subkueri dapat dikonfigurasi.
-
Kedalaman penyarangan subkueri maksimum 5 tingkat.
Contoh kondisi kueri
Untuk mencari gambar berformat JPEG dengan ukuran lebih dari 1000 piksel, parameter Query adalah sebagai berikut:
{
"SubQueries":[
{
"Field":"ContentType",
"Value": "image/jpeg",
"Operation":"eq"
},
{
"Field":"ImageWidth",
"Value":"1000",
"Operation":"gt"
}
],
"Operation":"and"
}
Untuk mencari semua file di
oss://examplebucket/path/yang berisi labelTVatauaudiodan memiliki ukuran lebih besar dari 10 MB, parameter Query adalah sebagai berikut:
Di sini, TV dan audio adalah label berbeda dari file yang sama, yang ada sebagai dua objek independen dalam bidang Labels. Perhatikan perbedaannya dari contoh berikutnya.
{
"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": "audio",
"Operation": "eq"
}
],
"Operation": "or"
}
],
"Operation": "and"
}
Untuk mengecualikan file yang informasi wajahnya berisi pria di atas 36 tahun, parameter Query adalah sebagai berikut:
Berbeda dari contoh sebelumnya, ini mengharuskan satu wajah secara bersamaan memenuhi kedua kondisi yaitu berusia di atas 36 tahun dan pria. Ini berbeda dengan persyaratan di mana sebuah gambar berisi banyak wajah, salah satunya adalah pria sementara yang lain berusia di atas 36 tahun. Dalam permintaan ini, kueri nested harus digunakan untuk menerapkan bahwa kondisi dipenuhi secara bersamaan dalam elemen yang sama.
{
"Operation": "not",
"SubQueries": [{
"Operation": "nested",
"SubQueries": [{
"Operation": "and",
"SubQueries": [{
"Field": "Figures.Age",
"Operation": "gt",
"Value": "36"
}, {
"Field": "Figures.Gender",
"Operation": "eq",
"Value": "male"
}]
}]
}]
}
Untuk mencari gambar berformat JPEG yang memiliki label kustom dan label sistem, parameter Query adalah sebagai berikut:
{
"SubQueries":[
{
"Field":"ContentType",
"Value": "image/jpeg",
"Operation":"eq"
},
{
"Field":"CustomLabels.test",
"Operation":"exist"
},
{
"Field":"Labels.LabelName",
"Operation":"exist"
}
],
"Operation":"and"
}
Dikombinasikan dengan kondisi pencarian sebelumnya, Anda juga dapat menggunakan operasi agregasi untuk melakukan statistik dan analisis pada data yang berbeda, seperti menghitung jumlah, hitungan, rata-rata, atau nilai ekstrem dari ukuran semua file yang cocok dengan kondisi pencarian, atau menganalisis distribusi ukuran semua gambar yang cocok dengan kondisi pencarian.
Coba sekarang
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
imm:SimpleQuery |
list |
*Dataset
|
None | None |
Parameter permintaan
|
Parameter |
Type |
Required |
Description |
Example |
| NextToken |
string |
No |
Ketika jumlah total file melebihi MaxResults yang dikonfigurasi, token ini digunakan untuk paginasi. Daftar informasi file dikembalikan dalam urutan leksikografis mulai dari NextToken. Biarkan parameter ini kosong saat pertama kali Anda memanggil operasi ini. |
MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw== |
| MaxResults |
integer |
No |
|
10 |
| ProjectName |
string |
Yes |
Nama proyek. Untuk informasi tentang cara memperoleh nama proyek, lihat CreateProject. |
test-project |
| DatasetName |
string |
Yes |
Nama dataset. Untuk informasi tentang cara memperoleh nama dataset, lihat CreateDataset. |
test-dataset |
| Query | SimpleQuery |
No |
Kondisi kueri sederhana. Klik tautan di sebelah kiri untuk detailnya. |
|
| Sort |
string |
No |
Daftar bidang pengurutan. Untuk informasi lebih lanjut, lihat Bidang dan operator yang didukung. Catatan
|
Size,Filename |
| Order |
string |
No |
Urutan pengurutan dari bidang pengurutan. Nilai yang valid:
Catatan
|
asc,desc |
| Aggregations |
array<object> |
No |
Daftar informasi bidang agregasi. Penting Ketika Anda menggunakan kueri agregasi, hanya hasil agregasi yang dikembalikan. Daftar metadata yang cocok tidak lagi dikembalikan. |
|
|
object |
No |
Struktur informasi bidang agregasi. |
||
| Field |
string |
No |
Nama bidang. Untuk bidang yang didukung, lihat Bidang dan operator yang didukung. |
Size |
| Operation |
string |
No |
Operator dari bidang agregasi. Valid values:
|
sum |
| WithFields |
array |
No |
Hanya mengembalikan nilai dari bidang tertentu alih-alih semua bidang metadata yang ada. Dapat digunakan untuk mengurangi ukuran struktur yang dikembalikan. Jika tidak ditentukan atau dibiarkan kosong, semua bidang dikembalikan. |
|
|
string |
No |
Nama bidang yang akan dikembalikan. Mendukung nama bidang yang tercantum dalam File. |
Filename |
|
| WithoutTotalHits |
boolean |
No |
Apakah akan mengembalikan jumlah total catatan yang cocok.
|
Elemen respons
|
Element |
Type |
Description |
Example |
|
object |
Struktur respons. |
||
| NextToken |
string |
Ketika jumlah total file melebihi MaxResults yang dikonfigurasi, token ini digunakan untuk paginasi. Pada pemanggilan berikutnya untuk mencantumkan informasi file, gunakan nilai ini sebagai NextToken untuk mengembalikan hasil yang belum dikembalikan. Parameter ini memiliki nilai hanya ketika tidak semua file telah dikembalikan. |
MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw== |
| RequestId |
string |
ID permintaan. |
2C5C1E0F-D8B8-4DA0-8127-EC32C771**** |
| Files |
array |
Daftar informasi file. Dikembalikan hanya ketika Aggregations dalam permintaan kosong. |
|
| File |
Struktur informasi file. |
||
| Aggregations |
array<object> |
Daftar informasi bidang agregasi. Dikembalikan hanya ketika Aggregations dalam permintaan tidak kosong. |
|
|
array<object> |
Struktur informasi bidang agregasi. |
||
| Field |
string |
Nama bidang agregasi. |
Size |
| Operation |
string |
Operator agregasi dari bidang agregasi. |
sum |
| Value |
number |
Hasil statistik dari agregasi. |
200 |
| Groups |
array<object> |
Daftar hasil agregasi grup. Dikembalikan hanya ketika Aggregations pada permintaan berisi Operation tipe group. |
|
|
object |
Hasil agregasi grup. |
||
| Value |
string |
The value for the grouped aggregation. |
100 |
| Count |
integer |
The number of results in the grouped aggregation. |
5 |
| TotalHits |
integer |
Jumlah catatan yang cocok. |
10 |
Contoh
Respons sukses
JSONformat
{
"NextToken": "MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw==",
"RequestId": "2C5C1E0F-D8B8-4DA0-8127-EC32C771****",
"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
}
],
"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
}
],
"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": "图片中有一人,穿着深色西装外套,内搭白色衬衫。背景为渐变的浅蓝色至灰色。"
}
}
}
],
"Aggregations": [
{
"Field": "Size",
"Operation": "sum",
"Value": 200,
"Groups": [
{
"Value": "100",
"Count": 5
}
]
}
],
"TotalHits": 10
}
Kode kesalahan
Lihat Error Codes untuk daftar lengkap.
Catatan rilis
Lihat Release Notes untuk daftar lengkap.