Création d'une collection
Cette section décrit comment créer une collection dans Milvus.
Une collection est composée d'une ou plusieurs partitions. Lors de la création d'une nouvelle collection, Milvus crée automatiquement une partition par défaut nommée _default
.
L'exemple suivant crée une collection appelée livre
avec deux shards. Elle inclut un champ de clé primaire nommé book_id
, un champ scalaire INT64
nommé word_count
, et un champ de vecteur flottant à deux dimensions nommé book_intro
. Les applications réelles peuvent utiliser des dimensions de vecteur supérieures à celles de l'exemple.
Définition du schéma de la collection
La collection à créer doit inclure un champ de clé primaire et un champ de vecteur. Le champ de clé primaire prend en charge les types de données INT64 et VarChar.
Astuce : La définition du schéma de la collection est similaire à la définition d'une structure de table dans MYSQL.
Tout d'abord, préparez les paramètres nécessaires, y compris les schémas de champ, les schémas de collection et les noms de collection.
Avant de définir le schéma de la collection, créez un schéma pour chaque champ de la collection. Pour simplifier la complexité de l'insertion de données, Milvus permet de spécifier une valeur par défaut pour chaque champ scalaire (à l'exception du champ de clé primaire). Cela signifie que si un champ est laissé vide lors de l'insertion de données, la valeur par défaut configurée pour ce champ lors de la création du schéma de champ sera utilisée.
var (
collectionName = "livre"
)
schema := &entity.Schema{
CollectionName: collectionName,
Description: "Test de recherche de livres",
Fields: []*entity.Field{
{
Name: "book_id",
DataType: entity.FieldTypeInt64,
PrimaryKey: true,
AutoID: false,
},
{
Name: "word_count",
DataType: entity.FieldTypeInt64,
PrimaryKey: false,
AutoID: false,
},
{
Name: "book_intro",
DataType: entity.FieldTypeFloatVector,
TypeParams: map[string]string{
"dim": "2",
},
},
},
EnableDynamicField: true
}
Type | Paramètre | Description | Options |
---|---|---|---|
entity.Schema |
CollectionName |
Nom de la collection à créer | N/A |
Description |
Description de la collection à créer | N/A | |
AutoID |
Interrupteur utilisé pour activer ou désactiver l'allocation automatique de l'ID (clé primaire) | True or False |
|
Fields |
Schémas des champs de la collection à créer. Pour plus d'informations, voir le schéma | N/A | |
EnableDynamicField |
Indique si le schéma dynamique est activé. Pour plus d'informations sur le schéma dynamique, voir le Guide de l'utilisateur sur le schéma dynamique et la gestion de collections | N/A | |
entity.Field |
Name |
Nom du champ à créer | N/A |
PrimaryKey |
Indique si ce champ est une clé primaire. Requis pour les champs de clé primaire | N/A | |
AutoID |
Indique si la valeur de champ est auto-incrémentée. Requis pour les champs de clé primaire | N/A | |
Description |
Description du champ | N/A | |
DataType |
Type de données du champ à créer | Pour les champs de clé primaire : - entity.FieldTypeInt64(numpy.int64) - entity.FieldTypeVarChar(VARCHAR) Pour les champs scalaires : - entity.FieldTypeBool(Boolean) - entity.FieldTypeInt8(numpy.int8) - entity.FieldTypeInt16(numpy.int16) - entity.FieldTypeInt32(numpy.int32) - entity.FieldTypeInt64(numpy.int64) - entity.FieldTypeFloat(numpy.float32) - entity.FieldTypeDouble(numpy.double) - entity.FieldTypeVarChar(VARCHAR) Pour les champs de vecteurs : - entity.FieldTypeBinaryVector (Vecteur binaire) - entity.FieldTypeFloatVector (Vecteur flottant) |
|
TypeParams |
Mappage de la chaîne qui définit les paramètres pour des types de données spécifiques | N/A | |
IndexParams |
Mappage de la chaîne qui définit les paramètres d'index de collection | N/A | |
IsDynamic |
Indique si ce champ active le schéma dynamique | N/A | |
IsPartitionKey |
Indique si ce champ agit comme une clé de partition | N/A |
Créer une collection basée sur la structure définie
Ensuite, créez une collection en utilisant le schéma spécifié.
err = milvusClient.CreateCollection(
context.Background(), // ctx
schema,
2, // shardNum
)
if err != nil {
log.Fatal("Échec de la création de la collection : ", err.Error())
}
Paramètre | Description | Options |
---|---|---|
ctx |
Contexte pour contrôler le processus d'appel de l'API | N/A |
shardNum |
Nombre de shards dans la collection à créer | [1,16] |
Restrictions de collection
Configuration des ressources
Fonctionnalité | Limite maximale |
---|---|
Longueur du nom de la collection | 255 caractères |
Nombre de partitions dans la collection | 4 096 |
Nombre de champs dans la collection | 64 |
Nombre de shards dans la collection | 16 |
Paramètre valeur_par_défaut
-
valeur_par_défaut
s'applique uniquement aux champs scalaires non tableaux et non JSON. -
valeur_par_défaut
ne s'applique pas aux clés primaires. - Le type de données de
valeur_par_défaut
doit être le même que le type de données spécifié dansdtype
, sinon des erreurs peuvent survenir. - Si
auto_id
est utilisé, il n'est pas autorisé de définir toutes les autres champs pour utiliser des valeurs par défaut. En d'autres termes, lors de l'exécution des opérations d'insertion ou de mise à jour, vous devez spécifier une valeur pour au moins un champ, sinon des erreurs peuvent survenir.
Vérifier si une collection existe
collExists, err := milvusClient.HasCollection(ctx, collectionName)
if err != nil {
log.Fatal("Échec de la vérification de l'existence de la collection : ", err.Error())
}
Supprimer une collection
_ = milvusClient.DropCollection(ctx, collectionName)
Interroger toutes les collections
collections, err := milvusClient.ListCollections(ctx)