Tous les produits
Search
Centre de documentation

Vector Retrieval Service for Milvus:Gérer les collections

Dernière mise à jour :Aug 12, 2026

Dans Milvus, les collections équivalent aux tables d'une base de données relationnelle. Elles constituent l'unité fondamentale pour organiser et gérer les données vectorielles ainsi que leurs métadonnées scalaires associées. Configurez des index, des partitions et des shards pour personnaliser le flux de traitement des données. Vous disposerez ainsi d'une solution complète pour l'ingestion, le stockage, l'interrogation et l'analyse des données.

Prérequis

Créer une collection

Création rapide d'une collection

Spécifiez le nom et la dimension vectorielle pour créer rapidement une collection.

from pymilvus import MilvusClient

# Create a Milvus client.
client = MilvusClient(
    uri="http://c-xxxx.milvus.aliyuncs.com:19530",  # The public endpoint of the Milvus instance.
    token="<yourUsername>:<yourPassword>",  # The username and password for the Milvus instance.
    db_name="default"  # The name of the database to connect to. This example uses the default database.
)

# Create a collection named milvus_collection.
client.create_collection(
    collection_name="milvus_collection",
    dimension=5
)

res = client.get_load_state(
    collection_name="milvus_collection"
)
# Return the current loading status of the collection.
print(res)

Ce code crée une collection comportant uniquement deux champs : id (clé primaire) et vector (champ vectoriel). Les propriétés auto_id et enable_dynamic_field sont activées par défaut.

  • auto_id : lorsque cette propriété est activée, Milvus attribue automatiquement une clé primaire auto-incrémentée à chaque enregistrement. Définir la valeur de la clé primaire n'est pas nécessaire.

  • enable_dynamic_field : si cette propriété est activée, tous les champs autres que les champs prédéfinis id et vector sont considérés comme dynamiques. Ils sont stockés sous forme de paires clé-valeur dans un champ spécial nommé $meta. Cette fonctionnalité permet d'insérer des données pour des champs non définis dans le schéma.

Ces paramètres offrent une grande flexibilité pour insérer et gérer des données sans définir tous les champs au préalable.

Création d'une collection personnalisée

Lors de la création d'une collection personnalisée, spécifiez les paramètres du schéma et de l'index.

from pymilvus import MilvusClient, DataType, time

# Create a Milvus client.
client = MilvusClient(
    uri="http://c-xxxx.milvus.aliyuncs.com:19530",  # The Internet-accessible address of the Milvus instance.
    token="<yourUsername>:<yourPassword>",  # The username and password to log on to the Milvus instance.
    db_name="default"  # The name of the database to connect to. This example uses the default database.
)

# Create a schema.
schema = MilvusClient.create_schema(
    auto_id=False,  # Disable automatic ID generation.
    enable_dynamic_field=True,  # Enable dynamic fields.
)

# Add schema fields.
# Add an INT64 field named test_id as the primary key.
schema.add_field(field_name="test_id", datatype=DataType.INT64, is_primary=True)
# Add a 768-dimensional float vector field named test_vector.
schema.add_field(field_name="test_vector", datatype=DataType.FLOAT_VECTOR, dim=768)

# Define index parameters.
index_params = client.prepare_index_params()

# Add indexes.
index_params.add_index(
    field_name="test_id",  
    index_type="STL_SORT"  # Set the index type.
)

index_params.add_index(
    field_name="test_vector",  
    index_type="IVF_SQ8",      # Set the index type.
    metric_type="L2",          # Set the metric type, such as L2.
    params={"nlist": 128}
)
# Create a collection with the specified schema and index.
client.create_collection(
    collection_name="milvus_collection",  # Create a collection named milvus_collection.
    schema=schema,
    index_params=index_params
)

time.sleep(5)

res = client.get_load_state(
    collection_name="milvus_collection"
)

print(res)

Vous pouvez également créer séparément la collection et l'index, comme illustré dans l'exemple suivant.

# Create a collection named milvus_collection1.
client.create_collection(
    collection_name="milvus_collection1",
    schema=schema,
)
# Query the loading status of milvus_collection1.
res = client.get_load_state(
    collection_name="milvus_collection1"
)

print(res)
# Create an index for milvus_collection1.
client.create_index(
    collection_name="milvus_collection1",
    index_params=index_params
)
# Query the loading status of milvus_collection1 after the index is created.
res = client.get_load_state(
    collection_name="milvus_collection1"
)

print(res)

Consulter les collections

  • Consultez les détails d'une collection spécifique.

    res = client.describe_collection(collection_name="milvus_collection")
    
    print(res)
    
  • Répertoriez toutes les collections de la base de données actuelle.

    res = client.list_collections()
    
    print(res)
    

Charger et libérer une collection

Charger une collection place ses fichiers d'index associés en mémoire, tandis que la libérer les décharge. Chargez impérativement une collection en mémoire avant toute opération de recherche.

Charger une collection

client.load_collection(
    collection_name="milvus_collection"
)

res = client.get_load_state(
    collection_name="milvus_collection"
)

print(res)

Libérer une collection

client.release_collection(
    collection_name="milvus_collection"
)

res = client.get_load_state(
    collection_name="milvus_collection"
)

print(res)

Supprimer une collection

client.drop_collection(
    collection_name="milvus_collection"
)

client.drop_collection(
    collection_name="milvus_collection1"
)