Mengkueri dan mengagregasi file dalam set data, serta mendukung ekspresi logis.
Deskripsi operasi
-
Sebelum memanggil operasi ini, pastikan Anda sepenuhnya memahami metode penagihan dan harga Intelligent Media Management.
-
Sebelum memanggil operasi ini, pastikan Anda telah mengindeks file ke dalam set data dengan menggunakan binding (CreateBinding) atau pengindeksan aktif (IndexFileMeta atau BatchIndexFileMeta).
-
Hasil yang dikembalikan hanya berupa contoh. Bergantung pada konfigurasi templat alur kerja, kategori dan konten metadata file yang diperoleh dapat berbeda dari contoh. Jika Anda memiliki pertanyaan, bergabunglah dengan kelompok DingTalk untuk memberikan masukan. Untuk ID kelompok DingTalk, lihat Hubungi kami.
Batasan
-
Setiap kueri mengembalikan maksimum 100 file.
-
Setiap kueri mengembalikan maksimum 2.000 informasi statistik agregasi.
-
Mendukung maksimum 100 kondisi subkueri.
-
Mendukung kedalaman bersarang maksimum 5 level untuk subkueri.
Contoh kondisi kueri
Untuk mencari gambar JPEG dengan ukuran lebih dari 1.000 piksel, tentukan parameter Query 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 mengandung tagTVatauSpeakerdan berukuran lebih dari 10 MB, tentukan parameter Query sebagai berikut:
Di sini, TV dan Speaker adalah tag yang berbeda dari file yang sama dan ada sebagai dua objek independen di bidang Labels. Perhatikan perbedaan antara ini dan contoh berikutnya.
{
"SubQueries": [
{
"Field": "URI",
"Value": "oss://examplebucket/path/",
"Operation": "awalan"
},
{
"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"
}
Untuk mengecualikan file yang berisi informasi wajah pria berusia lebih dari 36 tahun, tentukan parameter Query sebagai berikut:
Tidak seperti contoh sebelumnya, ini memerlukan satu wajah untuk memenuhi kedua kondisi: berusia lebih dari 36 tahun dan pria. Ini berbeda dari persyaratan di mana sebuah gambar berisi beberapa wajah, salah satunya pria dan yang lainnya berusia lebih dari 36 tahun. Dalam permintaan ini, Anda harus menggunakan kueri bersarang untuk memastikan bahwa kondisi terpenuhi 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 JPEG yang memiliki tag kustom dan tag sistem, tentukan parameter Query sebagai berikut:
{
"SubQueries":[
{
"Field":"ContentType",
"Value": "image/jpeg",
"Operation":"eq"
},
{
"Field":"CustomLabels.test",
"Operation":"exist"
},
{
"Field":"Labels.LabelName",
"Operation":"exist"
}
],
"Operation":"and"
}
Berdasarkan kondisi pencarian sebelumnya, Anda juga dapat menggunakan operasi agregasi untuk mengumpulkan statistik dan menganalisis data yang berbeda. Misalnya, Anda dapat menghitung ukuran total, jumlah, rata-rata, atau nilai ekstrem dari semua file yang memenuhi kondisi pencarian, atau mengumpulkan statistik tentang distribusi ukuran semua gambar yang memenuhi kondisi pencarian.
Coba sekarang
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
imm:SimpleQuery |
list |
*Set Data.
|
None | None |
Parameter permintaan
|
Parameter |
Type |
Required |
Description |
Example |
| NextToken |
string |
No |
Token yang digunakan untuk paginasi ketika jumlah total file melebihi nilai MaxResults. Daftar file dikembalikan dalam Pesanan leksikografis mulai dari NextToken. Atur parameter ini menjadi kosong saat Anda memanggil operasi ini untuk pertama pengatur waktu. |
MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw== |
| MaxResults |
integer |
No |
|
10 |
| ProjectName |
string |
Yes |
Nama proyek. Untuk informasi selengkapnya tentang cara mendapatkan nama proyek, lihat Membuat proyek. |
test-project |
| DatasetName |
string |
Yes |
Nama set data. Untuk informasi selengkapnya tentang cara mendapatkan nama set data, lihat Membuat set data. |
test-dataset |
| Query | SimpleQuery |
No |
Kondisi kueri sederhana. Klik tautan di sebelah kiri untuk Tampilan detail. |
|
| Sort |
string |
No |
Daftar bidang pengurutan. Untuk informasi selengkapnya, lihat Bidang dan operator yang didukung. Catatan
|
Size,Filename |
| Order |
string |
No |
Pesanan pengurutan untuk bidang pengurutan. Nilai valid:
Catatan
|
asc,desc |
| Aggregations |
array<object> |
No |
Daftar informasi bidang agregasi. Penting Saat Anda menggunakan kueri agregasi, hanya hasil agregasi yang dikembalikan, dan daftar metadata yang cocok tidak dikembalikan. |
|
|
object |
No |
Struktur informasi bidang agregasi. |
||
| Field |
string |
No |
Nama bidang. Untuk informasi selengkapnya tentang bidang yang didukung, lihat Bidang dan operator yang didukung. |
Size |
| Operation |
string |
No |
Operator untuk bidang agregasi. Valid values:
|
sum |
| WithFields |
array |
No |
Menentukan bidang spesifik yang akan dikembalikan alih-alih semua bidang metadata yang ada. Ini dapat digunakan untuk mengurangi ukuran struktur yang dikembalikan. Jika Anda tidak menentukan parameter ini atau membiarkannya kosong, semua bidang akan dikembalikan. |
|
|
string |
No |
Nama bidang yang akan dikembalikan. Untuk informasi selengkapnya tentang nama bidang yang didukung, lihat File. |
Filename |
|
| WithoutTotalHits |
boolean |
No |
Apakah akan mengembalikan jumlah total rekaman yang cocok. Nilai valid:
|
Elemen respons
|
Element |
Type |
Description |
Example |
|
object |
Struktur tanggapan. |
||
| Aggregations |
array<object> |
Daftar informasi bidang agregasi. Parameter ini hanya dikembalikan ketika Aggregations dalam permintaan tidak kosong. |
|
|
array<object> |
Struktur informasi bidang agregasi. |
||
| Field |
string |
Nama bidang agregasi. |
Size |
| Groups |
array<object> |
Daftar hasil pengelompokan dan agregasi. Parameter ini hanya dikembalikan ketika Operation dengan tipe kelompok ada di Aggregations pada permintaan. |
|
|
object |
Hasil kelompok dan agregasi. |
||
| Count |
integer |
Jumlah total dari kelompok dan agregasi. |
5 |
| Value |
string |
Nilai dari kelompok dan agregasi. |
100 |
| Operation |
string |
Operasi agregasi untuk bidang agregasi. |
sum |
| Value |
number |
Hasil statistik agregasi. |
200 |
| Files |
array |
Daftar informasi file. Parameter ini hanya dikembalikan ketika Aggregations dalam permintaan kosong. |
|
| File |
Struktur informasi file. |
||
| NextToken |
string |
Token yang digunakan untuk paginasi ketika jumlah total file melebihi nilai MaxResults. Saat Anda menampilkan daftar informasi file pengatur waktu berikutnya, atur NextToken ke nilai ini untuk mengembalikan hasil yang tersisa. Parameter ini hanya memiliki nilai ketika tidak semua file dikembalikan. |
MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw== |
| RequestId |
string |
ID permintaan. |
2C5C1E0F-D8B8-4DA0-8127-EC32C771**** |
| TotalHits |
integer |
Jumlah rekaman yang cocok. |
10 |
Contoh
Respons sukses
JSONformat
{
"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
}
Kode kesalahan
Lihat Error Codes untuk daftar lengkap.
Catatan rilis
Lihat Release Notes untuk daftar lengkap.