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 suas estruturas de dados sejam tão planas quanto possível para um desempenho ótimo.
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)Retorna o número de elementos num campo de matriz e pode ser combinado com operadores de comparação para filtragem.
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 contenham 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 ARRAY_LENGTH retorna o comprimento (número de elementos) de um campo de matriz. Aceita exatamente um parâmetro: o identificador do campo da matriz.
Exemplo
Para encontrar todas as entidades em que a matriz history_temperatures tem menos de 10 elementos:
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
Isso retornará todas as entidades onde a matriz history_temperatures tem menos de 10 elementos.