Operadores ARRAY
Milvus proporciona potentes operadores para consultar campos de matrices, permitiéndole filtrar y recuperar entidades basándose en el contenido de las matrices.
Todos los elementos de una matriz deben ser del mismo tipo, y las estructuras anidadas dentro de las matrices se tratan como cadenas simples. Por lo tanto, cuando se trabaja con campos ARRAY, es aconsejable evitar el anidamiento excesivamente profundo y asegurarse de que sus estructuras de datos son tan planas como sea posible para un rendimiento óptimo.
Operadores ARRAY disponibles
Los operadores ARRAY permiten una consulta detallada de los campos array en Milvus. Estos operadores son.
ARRAY_CONTAINS(identifier, expr)
: comprueba si un elemento específico existe en un campo de matriz.ARRAY_CONTAINS_ALL(identifier, expr)
: comprueba si todos los elementos de la lista especificada están presentes en el campo de matriz.ARRAY_CONTAINS_ANY(identifier, expr)
comprueba si alguno de los elementos de la lista especificada está presente en el campo matriz.ARRAY_LENGTH(identifier, expr)
permite filtrar entidades en función del número de elementos de un campo de matriz.
ARRAY_CONTAINS
El operador ARRAY_CONTAINS
comprueba si existe un elemento específico en un campo de matriz. Resulta útil cuando se desea encontrar entidades en las que un elemento determinado está presente en la matriz.
Ejemplo
Suponga que tiene un campo de matriz history_temperatures
, que contiene las temperaturas mínimas registradas en diferentes años. Para encontrar todas las entidades en las que la matriz contiene el valor 23
, puede utilizar la siguiente expresión de filtro.
filter = 'ARRAY_CONTAINS(history_temperatures, 23)'
Esto devolverá todas las entidades en las que la matriz history_temperatures
contenga el valor 23
.
MATRIZ_CONTIENE_TODOS
El operador ARRAY_CONTAINS_ALL
garantiza que todos los elementos de la lista especificada están presentes en el campo de la matriz. Este operador resulta útil cuando se desea buscar entidades que contienen varios valores en la matriz.
Ejemplo
Si desea encontrar todas las entidades en las que la matriz history_temperatures
contiene tanto 23
como 24
, puede utilizar.
filter = 'ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])'
Esto devolverá todas las entidades en las que la matriz history_temperatures
contenga los dos valores especificados.
MATRIZ_CONTIENE_CUALQUIERA
El operador ARRAY_CONTAINS_ANY
comprueba si alguno de los elementos de la lista especificada está presente en el campo de la matriz. Resulta útil cuando se desea buscar entidades que contengan al menos uno de los valores especificados en la matriz.
Ejemplo
Para encontrar todas las entidades en las que la matriz history_temperatures
contiene 23
o 24
, puede utilizar.
filter = 'ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])'
Esto devolverá todas las entidades en las que la matriz history_temperatures
contenga al menos uno de los valores 23
o 24
.
ARRAY_LENGTH
El operador ARRAY_LENGTH
permite filtrar entidades en función del número de elementos de un campo de matriz. Esto resulta útil cuando se necesita encontrar entidades con matrices de una longitud determinada.
Ejemplo
Si desea encontrar todas las entidades en las que la matriz history_temperatures
tiene menos de 10 elementos, puede utilizar.
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
Esto devolverá todas las entidades en las que la matriz history_temperatures
tenga menos de 10 elementos.