通过query-vectors命令进行向量相似性检索。
权限说明
阿里云账号默认拥有全部权限。阿里云账号下的RAM用户或RAM角色默认没有任何权限,需要阿里云账号或账号管理员通过RAM Policy或Bucket Policy授予操作权限。
API | Action | 说明 |
QueryVectors |
| 查询向量数据。 |
命令格式
ossutil vectors-api query-vectors --bucket value --index-name value --query-vector value --top-k value [flags]
参数说明
参数 | 类型 | 说明 |
--bucket | string | 向量Bucket名称。 |
--index-name | string | 索引名称。 |
--query-vector | string | 查询向量,JSON格式,维度必须与向量索引的维度相同。 |
--top-k | int | 返回最相似的K个向量,支持1~30。 |
--filter | string | 通过元数据对查询数据进行过滤。
|
--return-distance | / | 是否返回相似距离,留空或设置为 |
--return-metadata | / | 是否返回元数据,留空或设置为 |
query-vectors命令对应API接口QueryVectors。
关于支持的全局命令行选项,请参见全局命令行选项。
Filter操作符
操作符 | 支持类型 | 描述 |
| String, Number, Boolean | 精确匹配(用于单个值)。当与数组类型的元数据进行比较时,如果输入值能匹配数组中的任意一个元素,则返回true。 |
| String, Number, Boolean | 不等于 |
| Number | 大于 |
| Number | 大于或等于 |
| Number | 小于 |
| Number | 小于或等于 |
| Non-empty array of primitives | 匹配数组中的任意一个值(类似于SQL的 |
| Non-empty array of primitives | 不匹配数组中的任何一个值(类似于SQL的 |
| Boolean | 检查字段是否存在 |
| Non-empty array of filters | 多条件判断与(AND) |
| Non-empty array of filters | 多条件判断或(OR) |
使用示例
在名为examplebucket的向量Bucket中名为 index 的向量索引里,type为comedy和documentary的向量中与查询向量最相似的前 10 条。
ossutil vectors-api query-vectors --bucket examplebucket --index-name index --filter "{\"$and\":[{\"type\":{\"$in\":[\"comedy\",\"documentary\"]}}]}" --query-vector "{\"float32\":[32]}" --top-k 10