milvus-logo
LFAI
Home
  • Guide de l'utilisateur

Champ primaire et AutoID

Le champ primaire identifie de manière unique une entité. Cette page explique comment ajouter le champ primaire de deux types de données différents et comment permettre à Milvus d'attribuer automatiquement des valeurs de champ primaire.

Vue d'ensemble

Dans une collection, la clé primaire de chaque entité doit être globalement unique. Lors de l'ajout du champ primaire, vous devez explicitement définir son type de données sur VARCHAR ou INT64. En définissant son type de données sur INT64, vous indiquez que les clés primaires doivent être un nombre entier similaire à 12345; En définissant son type de données sur VARCHAR, vous indiquez que les clés primaires doivent être une chaîne de caractères similaire à my_entity_1234.

Vous pouvez également activer AutoID pour que Milvus alloue automatiquement des clés primaires aux entités entrantes. Une fois que vous avez activé AutoID dans votre collection, n'incluez pas de clés primaires lors de l'insertion d'entités.

Le champ primaire d'une collection n'a pas de valeur par défaut et ne peut pas être nul.

Utiliser des clés primaires Int64

Pour utiliser des clés primaires de type Int64, vous devez définir datatype sur DataType.INT64 et is_primary sur true. Si vous avez également besoin que Milvus alloue les clés primaires pour les entités entrantes, définissez également auto_id sur true.

from pymilvus import MilvusClient, DataType

schema = MilvusClient.create_schema()

schema.add_field(
    field_name="my_id",
    datatype=DataType.INT64,
    # highlight-start
    is_primary=True,
    auto_id=True,
    # highlight-end
)

import io.milvus.v2.common.DataType;
import io.milvus.v2.service.collection.request.AddFieldReq; 
import io.milvus.v2.service.collection.request.CreateCollectionReq;

CreateCollectionReq.CollectionSchema schema = client.createSchema();

schema.addField(AddFieldReq.builder()
        .fieldName("my_id")
        .dataType(DataType.Int64)
        // highlight-start
        .isPrimaryKey(true)
        .autoID(true)
        // highlight-end
        .build());
);

import { DataType } from "@zilliz/milvus2-sdk-node";

const schema = [
  {
    name: "pk",
    description: "ID field",
    data_type: DataType.VARCHAR,
    is_primary_key: true,
    max_length: 100,
  },
];

// Go 缺失

export primaryField='{
    "fieldName": "my_id",
    "dataType": "Int64",
    "isPrimary": true
}'

export schema="{
    \"autoID\": true,
    \"fields\": [
        $primaryField
    ]
}"

Utiliser des clés primaires VarChar

Pour utiliser les clés primaires VarChar, outre la modification de la valeur du paramètre data_type en DataType.VARCHAR, vous devez également définir le paramètre max_length pour le champ.

schema.add_field(
    field_name="my_id",
    datatype=DataType.VARCHAR,
    # highlight-start
    is_primary=True,
    auto_id=True,
    max_length=512,
    # highlight-end
)

import io.milvus.v2.common.DataType;
import io.milvus.v2.service.collection.request.AddFieldReq; 

schema.addField(AddFieldReq.builder()
        .fieldName("my_id")
        .dataType(DataType.VarChar)
        // highlight-start
        .isPrimaryKey(true)
        .autoID(true)
        .maxLength(512)
        // highlight-end
        .build());

schema.push({
    name: "my_id",
    data_type: DataType.VarChar,
    // highlight-start
    is_primary_key: true,
    autoID: true,
    maxLength: 512
    // highlight-end
});

// Go 缺失

export primaryField='{
    "fieldName": "my_id",
    "dataType": "VarChar",
    "isPrimary": true
}'

export schema="{
    \"autoID\": true,
    \"fields\": [
        $primaryField
    ],
    \"params\": {
        \"max_length\": 512
    }
}"

Traduit parDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Cette page a-t - elle été utile ?