Opérateurs ARRAY
Milvus fournit des opérateurs puissants pour interroger les champs de tableau, ce qui vous permet de filtrer et d'extraire des entités en fonction du contenu des tableaux.
Tous les éléments d'un tableau doivent être du même type et les structures imbriquées dans les tableaux sont traitées comme des chaînes simples. Par conséquent, lorsque vous travaillez avec des champs ARRAY, il est conseillé d'éviter une imbrication trop profonde et de veiller à ce que vos structures de données soient aussi plates que possible pour des performances optimales.
Opérateurs ARRAY disponibles
Les opérateurs ARRAY permettent une interrogation fine des champs de type tableau dans Milvus. Ces opérateurs sont les suivants
ARRAY_CONTAINS(identifier, expr)
: vérifie si un élément spécifique existe dans un champ de tableau.ARRAY_CONTAINS_ALL(identifier, expr)
ARRAY : vérifie que tous les éléments de la liste spécifiée sont présents dans le champ du tableau.ARRAY_CONTAINS_ANY(identifier, expr)
: vérifie si l'un des éléments de la liste spécifiée est présent dans le champ tableau.ARRAY_LENGTH(identifier, expr)
La fonction ARRAY_CONTAINS permet de filtrer les entités en fonction du nombre d'éléments présents dans un champ de type tableau.
ARRAY_CONTAINS
L'opérateur ARRAY_CONTAINS
vérifie si un élément spécifique existe dans un champ de tableau. Il est utile lorsque vous souhaitez trouver des entités dans lesquelles un élément donné est présent dans le tableau.
Exemple
Supposons que vous disposiez d'un champ de tableau history_temperatures
, qui contient les températures les plus basses enregistrées pour différentes années. Pour trouver toutes les entités dont le tableau contient la valeur 23
, vous pouvez utiliser l'expression de filtre suivante.
filter = 'ARRAY_CONTAINS(history_temperatures, 23)'
Cette expression renverra toutes les entités dont le tableau history_temperatures
contient la valeur 23
.
ARRAY_CONTAINS_ALL
L'opérateur ARRAY_CONTAINS_ALL
garantit que tous les éléments de la liste spécifiée sont présents dans le champ du tableau. Cet opérateur est utile lorsque vous souhaitez faire correspondre des entités qui contiennent plusieurs valeurs dans le tableau.
Exemple
Si vous souhaitez trouver toutes les entités dont le tableau history_temperatures
contient à la fois 23
et 24
, vous pouvez utiliser.
filter = 'ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])'
Vous obtiendrez toutes les entités dont le tableau history_temperatures
contient les deux valeurs spécifiées.
ARRAY_CONTAINS_ANY
L'opérateur ARRAY_CONTAINS_ANY
vérifie si l'un des éléments de la liste spécifiée est présent dans le champ du tableau. Cet opérateur est utile lorsque vous souhaitez faire correspondre des entités qui contiennent au moins une des valeurs spécifiées dans le tableau.
Exemple
Pour trouver toutes les entités dont le tableau history_temperatures
contient soit 23
, soit 24
, vous pouvez utiliser.
filter = 'ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])'
Ceci renverra toutes les entités dont le tableau history_temperatures
contient au moins l'une des valeurs 23
ou 24
.
ARRAY_LENGTH
L'opérateur ARRAY_LENGTH
vous permet de filtrer les entités en fonction du nombre d'éléments d'un champ de tableau. Cet opérateur est utile lorsque vous devez trouver des entités dont les tableaux sont d'une certaine longueur.
Exemple
Si vous souhaitez trouver toutes les entités dont le tableau history_temperatures
comporte moins de 10 éléments, vous pouvez utiliser l'opérateur.
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
Cela renverra toutes les entités dont le tableau history_temperatures
comporte moins de 10 éléments.