媒資搜索協議是集檢索、過濾、排序和翻頁于一體的實時搜索協議,用于搜索視頻點播生產的視頻、音頻和圖片等媒資信息。本文主要介紹了如何根據媒資搜索協議設置查詢語句,通過SearchMedia接口的Match字段實現在視頻點播中進行指定返回字段、精確匹配、模糊匹配、多值查詢、范圍查詢、排序字段等多方式多維度的搜索。
查詢語法:Syntax
根據媒資搜索協議中定義的語法規則將媒資字段分為返回字段,精確匹配,模糊匹配,多值查詢,范圍查詢和排序字段。視頻點播支持的所有媒資字段及適用的語法規則請參見媒資信息。
調用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
視頻點播目前支持對視頻、音頻、圖片信息和輔助媒資的搜索,各字段支持的查詢語法規則如下所示。以下表格中√表示支持,×表示不支持。
多值查詢時:最多支持傳入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 | 歸檔存儲 | 整個媒資的音視頻類資源(包含源文件、轉碼后的流文件,不包含截圖等資源)存儲類型為歸檔存儲。 |
ColdArchive | 冷歸檔存儲 | 整個媒資的音視頻類資源(包含源文件、轉碼后的流文件,不包含截圖等資源)存儲類型為冷歸檔存儲。 |
SourceIA | 源文件低頻訪問 | 僅媒資的源文件存儲類型為低頻訪問,源文件之外的其他資源的存儲類型為標準存儲。 |
SourceArchive | 源文件歸檔存儲 | 僅媒資的源文件存儲類型為歸檔存儲,源文件之外的其他資源的存儲類型為標準存儲。 |
SourceColdArchive | 源文件冷歸檔存儲 | 僅媒資的源文件存儲類型為冷歸檔存儲,源文件之外的其他資源的存儲類型為標準存儲。 |
Changing | 媒資存儲類型變更中 | 表示媒資的存儲類型正在變更中。 |
SourceChanging | 源文件存儲類型變更中 | 表示媒資源文件的存儲類型正在變更中。 |