Operadores ARRAY
Milvus fornece operadores poderosos para consultar campos de arrays, permitindo-lhe filtrar e recuperar entidades com base no conteúdo de arrays.
Todos os elementos dentro de uma matriz devem ser do mesmo tipo, e as estruturas aninhadas dentro de matrizes são tratadas como strings simples. Portanto, ao trabalhar com campos ARRAY, é aconselhável evitar aninhamentos excessivamente profundos e garantir que as estruturas de dados sejam tão planas quanto possível para um desempenho ideal.
Operadores ARRAY disponíveis
Os operadores ARRAY permitem uma consulta detalhada dos campos de matriz em Milvus. Estes operadores são.
ARRAY_CONTAINS(identifier, expr)
: verifica se um elemento específico existe num campo de matriz.ARRAY_CONTAINS_ALL(identifier, expr)
Operador ARRAY: garante que todos os elementos da lista especificada estão presentes no campo da matriz.ARRAY_CONTAINS_ANY(identifier, expr)
: verifica se algum dos elementos da lista especificada está presente no campo da matriz.ARRAY_LENGTH(identifier, expr)
Filtro de entidades: permite-lhe filtrar entidades com base no número de elementos num campo de matriz.
ARRAY_CONTAINS
O operador ARRAY_CONTAINS
verifica se um elemento específico existe num campo de matriz. É útil quando se pretende encontrar entidades onde um determinado elemento está presente na matriz.
Exemplo
Suponha que tem um campo de matriz history_temperatures
, que contém as temperaturas mais baixas registadas para diferentes anos. Para encontrar todas as entidades em que a matriz contém o valor 23
, pode utilizar a seguinte expressão de filtro.
filter = 'ARRAY_CONTAINS(history_temperatures, 23)'
Isso retornará todas as entidades onde a matriz history_temperatures
contém o valor 23
.
ARRAY_CONTAINS_ALL
O operador ARRAY_CONTAINS_ALL
garante que todos os elementos da lista especificada estão presentes no campo da matriz. Este operador é útil quando se pretende fazer corresponder entidades que contêm valores múltiplos na matriz.
Exemplo
Se você quiser encontrar todas as entidades onde a matriz history_temperatures
contém ambos 23
e 24
, você pode usar.
filter = 'ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])'
Isso retornará todas as entidades onde a matriz history_temperatures
contém ambos os valores especificados.
ARRAY_CONTAINS_ANY
O operador ARRAY_CONTAINS_ANY
verifica se algum dos elementos da lista especificada está presente no campo da matriz. Isto é útil quando se pretende fazer corresponder entidades que contêm pelo menos um dos valores especificados na matriz.
Exemplo
Para encontrar todas as entidades onde a matriz history_temperatures
contém 23
ou 24
, você pode usar.
filter = 'ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])'
Isso retornará todas as entidades onde a matriz history_temperatures
contém pelo menos um dos valores 23
ou 24
.
ARRAY_LENGTH
O operador ARRAY_LENGTH
permite-lhe filtrar entidades com base no número de elementos num campo de matriz. Isto é útil quando é necessário encontrar entidades com arrays de um determinado comprimento.
Exemplo
Se você quiser encontrar todas as entidades onde a matriz history_temperatures
tem menos de 10 elementos, você pode usar.
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
Isso retornará todas as entidades onde a matriz history_temperatures
tem menos de 10 elementos.