媒资搜索协议是集检索、过滤、排序和翻页于一体的实时搜索协议,用于搜索视频点播生产的视频、音频和图片等媒资信息。本文主要介绍了如何根据媒资搜索协议设置查询语句,通过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 | 源文件存储类型变更中 | 表示媒资源文件的存储类型正在变更中。 |