Collection expliquée
Dans Milvus, vous pouvez créer plusieurs collections pour gérer vos données et insérer vos données en tant qu'entités dans les collections. La collection et l'entité sont similaires aux tables et aux enregistrements dans les bases de données relationnelles. Cette page vous permet d'en savoir plus sur les collections et les concepts connexes.
Collection
Une collection est un tableau bidimensionnel avec des colonnes fixes et des lignes variables. Chaque colonne représente un champ et chaque ligne une entité.
Le graphique suivant montre une collection avec huit colonnes et six entités.
Collection expliquée
Schéma et champs
Lorsqu'on décrit un objet, on mentionne généralement ses attributs, tels que la taille, le poids et la position. Vous pouvez utiliser ces attributs comme champs dans une collection. Chaque champ possède diverses propriétés contraignantes, telles que le type de données et la dimensionnalité d'un champ vectoriel. Vous pouvez former un schéma de collection en créant les champs et en définissant leur ordre. Pour connaître les types de données applicables, reportez-vous à la section Schéma expliqué.
Vous devez inclure tous les champs définis par le schéma dans les entités à insérer. Pour rendre certains d'entre eux facultatifs, envisagez de
de les rendre nullables ou de définir des valeurs par défaut.
Pour plus d'informations sur la manière de rendre un champ nullable ou de définir la valeur par défaut, reportez-vous à la section Nullable & Default.
Activer un champ dynamique
Pour plus de détails sur l'activation et l'utilisation d'un champ dynamique, voir Champ dynamique.
Clé primaire et AutoId
À l'instar du champ primaire d'une base de données relationnelle, une collection dispose d'un champ primaire permettant de distinguer une entité des autres. Chaque valeur du champ primaire est globalement unique et correspond à une entité spécifique.
Comme le montre le tableau ci-dessus, le champ nommé id sert de champ primaire, et le premier ID 0 correspond à une entité intitulée Le taux de mortalité du coronavirus n'est pas important. Aucune autre entité n'aura le champ primaire 0.
Un champ primaire n'accepte que des nombres entiers ou des chaînes de caractères. Lorsque vous insérez des entités, vous devez inclure les valeurs des champs primaires par défaut. Toutefois, si vous avez activé l'option AutoId lors de la création de la collection, Milvus génère ces valeurs lors de l'insertion des données. Dans ce cas, excluez les valeurs des champs primaires des entités à insérer.
Pour plus d'informations, voir Champ primaire et AutoID.
Index
La création d'index sur des champs spécifiques améliore l'efficacité de la recherche. Il est conseillé de créer des index pour tous les champs sur lesquels votre service s'appuie, parmi lesquels les index sur les champs vectoriels sont obligatoires.
Entité
Les entités sont des enregistrements de données qui partagent le même ensemble de champs dans une collection. Les valeurs de tous les champs d'une même ligne constituent une entité.
Vous pouvez insérer autant d'entités que nécessaire dans une collection. Toutefois, lorsque le nombre d'entités augmente, la taille de la mémoire nécessaire augmente également, ce qui affecte les performances de la recherche.
Pour plus d'informations, reportez-vous à la section Schéma expliqué.
Chargement et validation
Le chargement d'une collection est la condition préalable à l'exécution de recherches de similarité et de requêtes dans les collections. Lorsque vous chargez une collection, Milvus charge tous les fichiers d'index et les données brutes de chaque champ dans la mémoire pour une réponse rapide aux recherches et aux requêtes.
Les recherches et les requêtes sont des opérations gourmandes en mémoire. Pour réduire les coûts, il est conseillé de libérer les collections qui ne sont pas utilisées.
Pour plus de détails, voir Charger et libérer.
Recherche et interrogation
Une fois que vous avez créé les index et chargé la collection, vous pouvez lancer une recherche de similarité en introduisant un ou plusieurs vecteurs de requête. Par exemple, lorsqu'il reçoit la représentation vectorielle de votre requête dans une demande de recherche, Milvus utilise le type de métrique spécifié pour mesurer la similarité entre le vecteur de la requête et ceux de la collection cible avant de renvoyer ceux qui sont sémantiquement similaires à la requête.
Vous pouvez également inclure le filtrage des métadonnées dans les recherches et les requêtes afin d'améliorer la pertinence des résultats. Notez que les conditions de filtrage des métadonnées sont obligatoires dans les requêtes, mais facultatives dans les recherches.
Pour plus de détails sur les types de métriques applicables, voir Types de métriques.
Pour plus d'informations sur les recherches et les requêtes, reportez-vous aux articles du chapitre Recherche et repositionnement, parmi lesquels figurent les fonctionnalités de base.
En outre, Milvus fournit également des améliorations destinées à accroître les performances et l'efficacité de la recherche. Elles sont désactivées par défaut et vous pouvez les activer et les utiliser en fonction de vos besoins. Ces améliorations sont les suivantes
Partition
Les partitions sont des sous-ensembles d'une collection, qui partagent le même ensemble de champs avec la collection mère, et qui contiennent chacun un sous-ensemble d'entités.
En répartissant les entités dans différentes partitions, vous pouvez créer des groupes d'entités. Vous pouvez effectuer des recherches et des requêtes dans des partitions spécifiques pour que Milvus ignore les entités dans d'autres partitions et améliore l'efficacité de la recherche.
Pour plus d'informations, reportez-vous à la section Gérer les partitions.
Fardeau
Les tessons sont des tranches horizontales d'une collection. Chaque shard correspond à un canal d'entrée de données. Chaque collection possède un shard par défaut. Vous pouvez définir le nombre approprié d'unités lors de la création d'une collection en fonction du débit attendu et du volume des données à insérer dans la collection.
Pour plus d'informations sur la définition du nombre de shards, reportez-vous à la section Créer une collection.
Alias
Vous pouvez créer des alias pour vos collections. Une collection peut avoir plusieurs alias, mais les collections ne peuvent pas partager un alias. Lorsqu'il reçoit une demande concernant une collection, Milvus localise la collection en fonction du nom fourni. Si la collection correspondant au nom fourni n'existe pas, Milvus continue à localiser le nom fourni en tant qu'alias. Vous pouvez utiliser des alias de collection pour adapter votre code à différents scénarios.
Pour plus de détails, voir Gérer les alias.
Fonction
Vous pouvez définir des fonctions pour que Milvus dérive des champs lors de la création de la collection. Par exemple, la fonction de recherche en texte intégral utilise la fonction définie par l'utilisateur pour dériver un champ vectoriel clair à partir d'un champ varchar spécifique. Pour plus d'informations sur la recherche en texte intégral, voir Recherche en texte intégral.
Niveau de cohérence
Les systèmes de bases de données distribuées utilisent généralement le niveau de cohérence pour définir la similitude des données entre les nœuds de données et les répliques. Vous pouvez définir des niveaux de cohérence distincts lorsque vous créez une collection ou que vous effectuez des recherches de similarité au sein de la collection. Les niveaux de cohérence applicables sont les suivants : Strong (fort), Bounded Staleness (stagnation limitée), Session (session) et Eventually (éventuellement).
Pour plus d'informations sur ces niveaux de cohérence, reportez-vous à la section Niveau de cohérence.
Limites
Pour connaître les limites et les restrictions applicables aux collections, reportez-vous à la section Limites et restrictions.