Opérateurs ARRAY
Milvus fournit des opérateurs puissants pour interroger les champs de tableau, ce qui 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 du tableau.ARRAY_LENGTH(identifier): renvoie le nombre d'éléments dans un champ de tableau et peut être combiné avec des opérateurs de comparaison pour le filtrage.
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 l'opérateur pour trouver toutes les entités dont le tableau contient à la fois et :
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
La fonction ARRAY_LENGTH renvoie la longueur (nombre d'éléments) d'un champ de tableau. Il accepte exactement un paramètre : l'identifiant du champ du tableau.
Exemple
Pour trouver toutes les entités dont le tableau history_temperatures comporte moins de 10 éléments :
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
Ceci renverra toutes les entités où le tableau history_temperatures a moins de 10 éléments.