Use el comando query-vectors para ejecutar una búsqueda de similitud de vectores.
Permisos
De forma predeterminada, una cuenta de Alibaba Cloud tiene permisos completos. En cambio, los usuarios y roles de RAM no cuentan con ningún permiso. El propietario o administrador de la cuenta debe otorgarles acceso mediante una RAM policy o un bucket policy.
|
API |
Acción |
Descripción |
|
QueryVectors |
|
Consulta datos vectoriales. |
Formato del comando
ossutil vectors-api query-vectors --bucket value --index-name value --query-vector value --top-k value [flags]
Parámetros
Parámetro | Tipo | Descripción |
--bucket | string | El nombre del bucket de vectores. |
--index-name | string | El nombre del índice vectorial. |
--query-vector | string | El vector de consulta en formato JSON. La dimensión del vector de consulta debe coincidir con la del índice vectorial. |
--top-k | int | La cantidad de vectores más similares que se devolverán. Valores válidos: de 1 a 500. |
--filter | string | Filtra los datos de consulta mediante metadatos.
|
--return-distance | / | Se devuelve la distancia de similitud si este parámetro se deja vacío o se establece en |
--return-metadata | / | Se devuelven los metadatos si este parámetro se deja vacío o se establece en |
El comando query-vectors corresponde a la operación de API QueryVectors.
Para obtener más información sobre las opciones globales de línea de comandos compatibles, consulte Global command-line options.
Operadores de filtrado
|
Operador |
Tipo |
Descripción |
|
|
String, Number, Boolean |
Coincidencia exacta (para un solo valor). Cuando se aplica a metadatos de tipo arreglo, el operador devuelve |
|
|
String, Number, Boolean |
Coincide con los valores distintos al especificado. |
|
|
Number |
Mayor que. |
|
|
Number |
Mayor o igual que. |
|
|
Number |
Menor que. |
|
|
Number |
Menor o igual que. |
|
|
Arreglo no vacío de tipos primitivos |
Coincide con cualquier valor dentro de un arreglo (similar a la operación |
|
|
Arreglo no vacío de tipos primitivos |
No coincide con ninguno de los valores del arreglo (similar a la operación |
|
|
Boolean |
Comprueba si existe una clave de metadatos. |
|
|
Arreglo no vacío de filtros |
Ejecuta una operación lógica AND sobre un arreglo de condiciones de filtrado. |
|
|
Arreglo no vacío de filtros |
Ejecuta una operación lógica OR sobre un arreglo de condiciones de filtrado. |
|
|
Arreglo no vacío de filtros |
Ejecuta una operación lógica NOR sobre un arreglo de condiciones de filtrado. |
Ejemplos de filtros
A continuación se muestran algunos ejemplos comunes de expresiones de filtrado. Si omite el operador, se utiliza $eq de forma predeterminada.
// Simple equality (uses $eq by default when the operator is omitted)
{"category": "finance"}
// Explicit equality / inequality
{"category": {"$eq": "finance"}}
{"category": {"$ne": "archived"}}
// Numeric comparison
{"created_year": {"$gt": 2023}}
{"created_year": {"$gte": 2024}}
{"created_year": {"$lt": 2026}}
{"created_year": {"$lte": 2025}}
// Array matching
{"language": {"$in": ["zh", "en"]}}
{"language": {"$nin": ["ja", "ko"]}}
// Existence check
{"author": {"$exists": true}}
// Logical combination
{"$and": [{"category": {"$eq": "finance"}}, {"created_year": {"$gte": 2024}}]}
{"$or": [{"category": {"$eq": "finance"}}, {"category": {"$eq": "tech"}}]}
{"$nor": [{"category": {"$eq": "finance"}}, {"category": {"$eq": "tech"}}]}
// Multiple conditions on the same field (range)
{"score": {"$gte": 0.6, "$lte": 0.95}}
Ejemplo
El siguiente comando busca los 10 vectores más similares a un vector de consulta dentro del índice vectorial 'index' del bucket de vectores 'examplebucket'. Además, filtra los resultados cuyo campo 'type' sea 'comedy' o 'documentary'.
ossutil vectors-api query-vectors --bucket examplebucket --index-name index --filter "{\"$and\":[{\"type\":{\"$in\":[\"comedy\",\"documentary\"]}}]}" --query-vector "{\"float32\":[32]}" --top-k 10