Operadores básicos
Milvus proporciona un amplio conjunto de operadores básicos para ayudarle a filtrar y consultar datos de forma eficiente. Estos operadores le permiten refinar sus condiciones de búsqueda basándose en campos escalares, cálculos numéricos, condiciones lógicas y mucho más. Entender cómo utilizar estos operadores es crucial para construir consultas precisas y maximizar la eficiencia de sus búsquedas.
Operadores de comparación
Los operadores de comparación se utilizan para filtrar datos en función de la igualdad, la desigualdad o el tamaño. Son aplicables a campos numéricos, de texto y de fecha.
Operadores de comparación admitidos.
==
(Igual a)!=
(No igual a)>
(Mayor que)<
(Menor que)>=
(Mayor o igual que)<=
(Menor o igual que)
Ejemplo 1: Filtrado con Igual a (==
)
Suponga que tiene un campo llamado status
y quiere encontrar todas las entidades en las que status
es "activo". Puede utilizar el operador de igualdad ==
.
filter = 'status == "active"'
Ejemplo 2: Filtrado con no igual a (!=
)
Para encontrar entidades donde status
no sea "inactivo".
filter = 'status != "inactive"'
Ejemplo 3: Filtrado con Mayor que (>
)
Si desea encontrar todas las entidades con un age
mayor que 30.
filter = 'age > 30'
Ejemplo 4: Filtrado con menor que (<
)
Para encontrar las entidades en las que price
es inferior a 100.
filter = 'price < 100'
Ejemplo 5: Filtrado con mayor o igual que (>=
)
Si desea encontrar todas las entidades con rating
mayor o igual a 4.
filter = 'rating >= 4'
Ejemplo 6: Filtrado con menor o igual que (<=
)
Para encontrar entidades con discount
menor o igual que 10%.
filter = 'discount <= 10'
Operadores de rango
Los operadores de rango ayudan a filtrar datos basándose en conjuntos o rangos de valores específicos.
Operadores de rango admitidos.
IN
: Se utilizan para buscar valores dentro de un conjunto o rango específico.LIKE
: Se utiliza para coincidir con un patrón (principalmente para campos de texto).
Ejemplo 1: Uso de IN
para buscar varios valores
Si desea encontrar todas las entidades en las que color
sea "rojo", "verde" o "azul".
filter = 'color in ["red", "green", "blue"]'
Esto es útil cuando se quiere comprobar la pertenencia a una lista de valores.
Ejemplo 2: Utilización de LIKE
para la búsqueda de patrones
El operador LIKE
se utiliza para la comparación de patrones en campos de cadena. Puede coincidir con subcadenas en distintas posiciones dentro del texto: como prefijo, infijo o sufijo. El operador LIKE
utiliza el símbolo %
como comodín, que puede coincidir con cualquier número de caracteres (incluido el cero).
Coincidencia de prefijo (empieza por)
Para realizar una coincidencia de prefijo, en la que la cadena comienza con un patrón determinado, puede colocar el patrón al principio y utilizar %
para que coincida con los caracteres que le siguen. Por ejemplo, para buscar todos los productos cuyo name
empiece por "Prod".
filter = 'name LIKE "Prod%"'
Esto coincidirá con cualquier producto cuyo nombre empiece por "Prod", como "Producto A", "Producto B", etc.
Coincidencia de sufijo (termina con)
Para una coincidencia de sufijo, en la que la cadena termina con un patrón dado, coloque el símbolo %
al principio del patrón. Por ejemplo, para buscar todos los productos cuyo name
termine en "XYZ".
filter = 'name LIKE "%XYZ"'
Esto coincidirá con cualquier producto cuyo nombre termine en "XYZ", como "ProductXYZ", "SampleXYZ", etc.
Coincidencia infija (contiene)
Para realizar una coincidencia infija, en la que el patrón puede aparecer en cualquier lugar de la cadena, puede colocar el símbolo %
tanto al principio como al final del patrón. Por ejemplo, para buscar todos los productos cuyo name
contenga la palabra "Pro".
filter = 'name LIKE "%Pro%"'
Esto coincidirá con cualquier producto cuyo nombre contenga la subcadena "Pro", como "Product", "ProLine" o "SuperPro".
Operadores aritméticos
Los operadores aritméticos le permiten crear condiciones basadas en cálculos que implican campos numéricos.
Operadores aritméticos admitidos.
+
(Suma)-
(Resta)*
(Multiplicación)/
(División)%
(Módulo)**
(Exponenciación)
Ejemplo 1: Utilización de la suma (+
)
Para encontrar entidades en las que el precio total
es la suma de base_price
y tax
.
filter = 'total == base_price + tax'
Ejemplo 2: Sustracción (-
)
Para encontrar entidades donde quantity
es mayor que 50 y quantity_sold
es menor que 30.
filter = 'quantity - quantity_sold > 50'
Ejemplo 3: Multiplicación (*
)
Para encontrar entidades donde price
es mayor que 100 y quantity
es mayor que 10, multiplicado.
filter = 'price * quantity > 1000'
Ejemplo 4: Uso de la división (/
)
Para encontrar productos donde total_price
dividido por quantity
es menor que 50.
filter = 'total_price / quantity < 50'
Ejemplo 5: Uso del módulo (%
)
Para encontrar entidades donde id
es un número par (es decir, divisible por 2).
filter = 'id % 2 == 0'
Ejemplo 6: Uso de la exponenciación (**
)
Para encontrar entidades donde price
elevado a la potencia de 2 es mayor que 1000.
filter = 'price ** 2 > 1000'
Operadores lógicos
Los operadores lógicos se utilizan para combinar varias condiciones en una expresión de filtro más compleja. Entre ellos se incluyen AND
, OR
y NOT
.
Operadores lógicos admitidos.
AND
: Combina varias condiciones que deben ser todas verdaderas.OR
: Combina condiciones donde al menos una debe ser verdadera.NOT
: Niega una condición.
Ejemplo 1: Uso de AND
para combinar condiciones
Para encontrar todos los productos donde price
es mayor que 100 y stock
es mayor que 50.
filter = 'price > 100 AND stock > 50'
Ejemplo 2: Uso de OR
para combinar condiciones
Para encontrar todos los productos donde color
es "rojo" o "azul".
filter = 'color == "red" OR color == "blue"'
Ejemplo 3: Uso de NOT
para excluir una condición
Para encontrar todos los productos donde color
no es "verde".
filter = 'NOT color == "green"'
Consejos sobre el uso de operadores básicos con campos JSON y ARRAY
Aunque los operadores básicos de Milvus son versátiles y pueden aplicarse a campos escalares, también pueden utilizarse eficazmente con las claves y los índices de los campos JSON y ARRAY.
Por ejemplo, si tiene un campo product
que contiene múltiples claves como price
, model
, y tags
, siempre haga referencia a la clave directamente.
filter = 'product["price"] > 1000'
Para buscar registros en los que la primera temperatura de una matriz de temperaturas registradas supere un valor determinado, utilice.
filter = 'history_temperatures[0] > 30'
Conclusión
Milvus ofrece una serie de operadores básicos que le proporcionan flexibilidad a la hora de filtrar y consultar sus datos. Combinando operadores de comparación, de rango, aritméticos y lógicos, puede crear potentes expresiones de filtrado para acotar los resultados de búsqueda y recuperar los datos que necesita de forma eficaz.