vdb
字段类型
[
# 1. 主键字段 (必选): INT64 类型,非自增(手动指定ID以便与业务系统关联)
{
"name": "id",
"type": DataType.INT64,
"is_primary": True,
"auto_id": False
},
# 2. 向量字段 (核心): 存储 CLIP 提取的特征,768 维
{
"name": "video_embedding",
"type": DataType.FLOAT_VECTOR,
"dim": 768
},
# 3. 变长字符串: 存储视频存储路径,需指定最大长度
{
"name": "file_path",
"type": DataType.VARCHAR,
"max_length": 512
},
# 4. 浮点数: 存储评估得分 (如 VBench 的综合分数)
{
"name": "quality_score",
"type": DataType.FLOAT
},
# 5. 布尔值: 标记是否已完成人工复核
{
"name": "is_reviewed",
"type": DataType.BOOL
},
# 6. 整数: 存储视频的时长(秒)
{
"name": "duration_sec",
"type": DataType.INT32
},
# 7. JSON 字段: 存储非结构化的元数据(如 VBench 的 16 个子维度细节)
# Milvus 2.4+ 支持 JSON 动态解析查询
{
"name": "meta_data",
"type": DataType.JSON
}
]
API
对外提供http的接口,安全要求会提供客户端ip过滤
创建集合
path:/v1/createcollection method:POST headers:{ "Content-Type": "application/json" } data:{ colname: 集合名字,必须提供 fields: 集合字段集,请参照字段类型提供 description:可选, 集合描述 }
成功返回 { "status":"SUCCEEDED" }
失败返回 { "status":"FAILED", "error": 错误信息 }
删除集合
path:/v1/dropcollection method:POST headers:{ "Content-Type": "application/json" } data:{ colname: 集合名字,必须提供 }
成功返回 { "status":"SUCCEEDED" }
失败返回 { "status":"FAILED", "error": 错误信息 }
向集合插入一到多条记录
path:/v1/upsert method:POST headers:{ "Content-Type": "application/json" } data:{ colname: 集合名字,必须提供 data: 数据字典或数据字典数组 }
成功返回 { "status":"SUCCEEDED" }
失败返回 { "status":"FAILED", "error": 错误信息 }
删除集合一到多条记录
path:/v1/delete method:POST headers:{ "Content-Type": "application/json" } data:{ colname: 集合名字,必须提供 pks: 主键或主键数组 description:可选, 集合描述 }
成功返回 { "status":"SUCCEEDED" }
失败返回 { "status":"FAILED", "error": 错误信息 }
查询集合数据
path:/v1/createcollection method:POST headers:{ "Content-Type": "application/json" } data:{ colname: 集合名字,必须提供 fields: 集合字段集,请参照字段类型提供 description:可选, 集合描述 }
成功返回 { "status":"SUCCEEDED" "data": 返回数据 }
失败返回 { "status":"FAILED", "error": 错误信息 }
返回数据有如下结构 { "total": -1, # 不知道总共多少条符合条件的数据 "page": 当前页(起始1) "pagerows": 每页记录数 "rows": 记录数据 }