媒資搜尋協議是集檢索、過濾、排序和翻頁於一體的即時搜尋協議,用於搜尋ApsaraVideo for VOD生產的視頻、音頻和圖片等媒資資訊。本文主要介紹了如何根據媒資搜尋通訊協定設定查詢語句,通過SearchMedia介面的Match欄位實現在ApsaraVideo for VOD中進行指定返回欄位、精確匹配、模糊比對、多值查詢、範圍查詢、排序欄位等多方式多維度搜尋。
查詢文法:Syntax
根據媒資搜尋協議中定義的文法規則將媒資欄位分為返回欄位,精確匹配,模糊比對,多值查詢,範圍查詢和排序欄位。ApsaraVideo for VOD支援的所有媒資欄位及適用的文法規則請參見媒資資訊。
調用OpenAPI介面時,需要對查詢語句進行URL編碼,同時查詢語句中使用的等號、雙引號、單引號、括弧必須為英文半形。搜尋協議中包含的特殊字元說明詳見特殊字元說明。
以下為媒資搜尋協議定義的文法及樣本:
名稱 | 含義 | 文法 | 樣本 |
返回欄位 | 指定搜尋返回結果中包含哪些欄位,預設只返回媒體ID,建立時間和媒體類型。 | field1,field2 | |
精確匹配 | 用於搜尋與指定欄位值完全相等的文檔。 | field = value | |
模糊比對 | 搜尋包含指定字元或字串的文檔。 | field in ('value1','value2') 或 field = 'value' | |
多值查詢 | 可以指定多個欄位進行過濾,只要命中其中一個欄位值的文檔即返回。 | field in ('value1','value2') | |
範圍查詢 | 開閉區間規則,匹配欄位值在指定範圍內的文檔。 | field = (value1,value2) | |
排序欄位 | 用於排序搜尋結果的欄位值,同時需要為每個欄位指定排序方向(Desc或Asc)。多個排序欄位時,從左至右排序優先順序從高至低。 | SortBy = field:Desc |
特殊字元說明
名稱 | 描述 | 文法 |
and | 位於兩個過濾條件之間,表示兩個過濾條件同時命中的文檔才會返回。 | field1 = 'value' and field2 = 'value' |
or | 位於兩個過濾條件之間,表示命中兩個過濾條件之一的文檔即可返回,此時過濾條件需要以左括弧"("開始,右括弧")"結束。 | (field1 = 'value1' or field2 = 'value2') |
( ) | 括弧,範圍查詢。 | field = ('value1','value2') |
( ) | 括弧,表示多個查詢條件之間的或關係。 | (field1 = 'value1' or field2 = 'value2') |
' ' | 單引號,當指定的查詢欄位為字串類型時,欄位值需要以單引號開始,單引號結束。 | field = 'value' |
, | 逗號,多值查詢使用。用於分隔多個查詢值。 | field in ('value1','value2') |
( ) [ ] | 開閉區間規則,表示大於、小於、大於等於、小於等於。範圍查詢使用,表示邊界值的大小關係。 | field = ['value1','value2'] |
in | 多值查詢使用,當文檔中的欄位值在所列舉的值中時,該文檔返回。 | field in ('value1','value2') |
媒資資訊:Media
ApsaraVideo for VOD目前支援對視頻、音頻、圖片資訊和輔助媒資的搜尋,各欄位支援的查詢文法規則如下所示。以下表格中√表示支援,×表示不支援。
多值查詢時:最多支援傳入3個值。
模糊比對查詢時:支援傳入的單個字串的最大長度為60字元。
當title和其他欄位同時模糊查詢不能正確命中時,請檢查您的格式是否正確。模糊查詢樣本:
(Title='測試' and Description = '描述')
。
視頻資訊:Video
名稱 | 類型 | 描述 | 返回欄位 | 精確匹配 | 模糊比對 | 多值查詢 | 範圍查詢 | 排序欄位 |
VideoId | String | 視頻ID | ✓ | ✓ | × | ✓ | × | × |
AppId | String | 應用ID | ✓ | × | × | ✓ | × | × |
CateId | Long | 分類ID | ✓ | ✓ | × | × | × | × |
CateName | String | 分類名稱 | ✓ | × | × | × | × | × |
StorageLocation | String | 儲存地區 | ✓ | ✓ | × | ✓ | × | × |
Title | String | 視頻標題 | ✓ | × | ✓ | × | × | × |
Tags | String | 視頻標籤 | ✓ | × | ✓ | ✓ | × | × |
Description | String | 視頻描述 | ✓ | × | ✓ | × | × | × |
Status | String | ✓ | × | × | ✓ | × | × | |
MediaSource | String | ✓ | × | × | ✓ | × | × | |
PreprocessStatus | String | ✓ | × | × | ✓ | × | × | |
Size | Long | 視頻大小 | ✓ | × | × | × | ✓ | × |
Duration | Float | 視頻時間長度 | ✓ | × | × | × | ✓ | × |
CreationTime | String | 視頻資訊建立時間 | ✓ | × | × | × | ✓ | ✓ |
ModificationTime | String | 視頻資訊更新時間 | ✓ | × | × | × | ✓ | ✓ |
CoverURL | String | 封面圖片 | ✓ | × | × | × | × | × |
Snapshots | String[] | 自動截圖列表 | ✓ | × | × | × | × | × |
SpriteSnapshots | String[] | 雪碧圖列表 | ✓ | × | × | × | × | × |
DownloadSwitch | String | ✓ | × | × | × | × | × | |
TranscodeMode | String | ✓ | × | × | × | × | × | |
StorageClass | String | ✓ | × | × | ✓ | × | × |
音頻資訊:Audio
名稱 | 類型 | 描述 | 返回欄位 | 精確匹配 | 模糊比對 | 多值查詢 | 範圍查詢 | 排序欄位 |
AudioId | String | 音頻ID | ✓ | ✓ | × | × | × | × |
AppId | String | 應用ID | ✓ | × | × | ✓ | × | × |
CateId | Long | 分類ID | ✓ | ✓ | × | × | × | × |
CateName | String | 分類名稱 | ✓ | × | × | × | × | × |
StorageLocation | String | 儲存地區 | ✓ | × | × | ✓ | × | × |
Title | String | 標題 | ✓ | × | ✓ | × | × | × |
Tags | String | 標籤 | ✓ | × | ✓ | ✓ | × | × |
Description | String | 描述 | ✓ | × | ✓ | × | × | × |
Status | String | ✓ | × | × | ✓ | × | × | |
MediaSource | String | ✓ | × | × | ✓ | × | × | |
PreprocessStatus | String | ✓ | × | × | ✓ | × | × | |
Size | Long | 大小 | ✓ | × | × | × | ✓ | × |
Duration | Float | 時間長度 | ✓ | × | × | × | ✓ | × |
CreationTime | String | 建立時間 | ✓ | × | × | × | ✓ | ✓ |
ModificationTime | String | 更新時間 | ✓ | × | × | × | ✓ | ✓ |
CoverURL | String | 封面圖片 | ✓ | × | × | × | × | × |
Snapshots | String[] | 自動截圖列表 | ✓ | × | × | × | × | × |
SpriteSnapshots | String[] | 雪碧圖列表 | ✓ | × | × | × | × | × |
DownloadSwitch | String | ✓ | × | × | × | × | × | |
TranscodeMode | String | ✓ | × | × | × | × | × | |
StorageClass | String | ✓ | × | × | ✓ | × | × |
圖片資訊:Image
名稱 | 類型 | 描述 | 返回欄位 | 精確匹配 | 模糊比對 | 多值查詢 | 範圍查詢 | 排序欄位 |
ImageId | String | 圖片ID | ✓ | ✓ | × | × | × | × |
AppId | String | 應用ID | ✓ | × | × | ✓ | × | × |
CateId | Long | 分類ID | ✓ | ✓ | × | × | × | × |
CateName | String | 分類名稱 | ✓ | × | × | × | × | × |
StorageLocation | String | 儲存地區 | ✓ | ✓ | × | ✓ | × | × |
FileName | String | 檔案名稱 | ✓ | × | ✓ | × | × | × |
Title | String | 標題 | ✓ | × | ✓ | × | × | × |
Tags | String | 標籤 | ✓ | × | ✓ | ✓ | × | × |
Description | String | 描述 | ✓ | × | ✓ | × | × | × |
Status | String | ✓ | × | × | ✓ | × | × | |
CreationTime | String | 建立時間 | ✓ | × | × | × | ✓ | ✓ |
ModificationTime | String | 更新時間 | ✓ | × | × | × | ✓ | ✓ |
URL | String | 圖片URL | ✓ | × | × | × | × | × |
輔助媒資資訊:AttachedMedia
名稱 | 類型 | 描述 | 返回欄位 | 精確匹配 | 模糊比對 | 多值查詢 | 範圍查詢 | 排序欄位 |
MediaId | String | 輔助媒資ID | ✓ | ✓ | × | × | × | × |
AppIdString | String | 應用ID | ✓ | × | × | ✓ | × | × |
CateId | Long | 分類ID | × | ✓ | × | × | × | × |
Categories | Category[] | 分類ID列表 | ✓ | × | × | × | × | × |
StorageLocation | String | 儲存地區 | ✓ | ✓ | × | ✓ | × | × |
FileName | String | 檔案名稱 | ✓ | × | ✓ | × | × | × |
Title | String | 標題 | ✓ | × | ✓ | × | × | × |
Tags | String | 標籤 | ✓ | × | ✓ | ✓ | × | × |
Description | String | 描述 | ✓ | × | ✓ | × | × | × |
Status | String | ✓ | × | × | ✓ | × | × | |
CreationTime | String | 建立時間 | ✓ | × | × | × | ✓ | ✓ |
ModificationTime | String | 更新時間 | ✓ | × | × | × | ✓ | ✓ |
URL | String | 輔助媒資URL | ✓ | × | × | × | × | × |
BusinessType | String | 業務類型 | ✓ | ✓ | × | × | × | × |
部分參數說明
預先處理狀態:PreprocessStatus
預先處理完成後的視頻才可用於直播導播。
取值 | 描述 | 備忘 |
UnPreprocess | 未進行預先處理 | 初始狀態。 |
Preprocessing | 預先處理中 | 無。 |
PreprocessSucceed | 預先處理完成 | 無。 |
PreprocessFailed | 預先處理失敗 | 無。 |
離線下載狀態:DownloadSwitch
視頻離線下載開關狀態,只有狀態開啟時才允許離線下載。
取值 | 描述 | 備忘 |
on | 開啟 | 初始狀態,允許離線下載。 |
off | 禁用 | 禁用離線下載。 |
媒體來源:MediaSource
取值 | 描述 | 備忘 |
general | 點播上傳 | 普通上傳。 |
short_video | 短視頻SDK | 通過短視頻SDK上傳檔案至點播,更多資訊,請參見短視頻SDK。 |
editing | 剪輯合成 | 通過雲剪輯合成上傳檔案至點播,更多資訊,請參見視頻合成。 |
live | 直播錄製 | 通過直播錄製上傳檔案至點播。 |
轉碼模式:TranscodeMode
檔案上傳至點播後,經過不同視頻處理後才可用於播放。不同轉碼模式處理的方式不同。
取值 | 描述 | 備忘 |
FastTranscode | 普通轉碼 | 預設模式,上傳完成即開始轉碼,且轉碼完成才能播放。 |
NoTranscode | 不轉碼即分發 | 上傳完成不轉碼,且立即能播放,目前僅以下格式支援不轉碼直接播放:MP4、FLV、M3U8、MP3、WEBM。 |
AsyncTranscode | 上傳即分發並轉碼 | 上傳完成即能播放,同時非同步進行轉碼。 |
分級儲存類型:StorageClass
取值 | 描述 | 備忘 |
Standard | 標準儲存 | 整個媒資的音視頻類資源(包含源檔案、轉碼後的流檔案,不包含截圖等資源)儲存類型為標準儲存。 |
IA | 低頻訪問 | 整個媒資的音視頻類資源(包含源檔案、轉碼後的流檔案,不包含截圖等資源)儲存類型為低頻訪問。 |
Archive | Archive Storage | 整個媒資的音視頻類資源(包含源檔案、轉碼後的流檔案,不包含截圖等資源)儲存類型為Archive Storage。 |
ColdArchive | 冷Archive Storage | 整個媒資的音視頻類資源(包含源檔案、轉碼後的流檔案,不包含截圖等資源)儲存類型為冷Archive Storage。 |
SourceIA | 源檔案低頻訪問 | 僅媒資的源檔案儲存體類型為低頻訪問,源檔案之外的其他資源的儲存類型為標準儲存。 |
SourceArchive | 源檔案Archive Storage | 僅媒資的源檔案儲存體類型為Archive Storage,源檔案之外的其他資源的儲存類型為標準儲存。 |
SourceColdArchive | 源檔案冷Archive Storage | 僅媒資的源檔案儲存體類型為冷Archive Storage,源檔案之外的其他資源的儲存類型為標準儲存。 |
Changing | 媒資儲存類型變更中 | 表示媒資的儲存類型正在變更中。 |
SourceChanging | 源檔案儲存體類型變更中 | 表示媒資源檔的儲存類型正在變更中。 |