milvus-logo
LFAI
Casa
  • Guida per l'utente

Campo primario e AutoID

Il campo primario identifica in modo univoco un'entità. Questa pagina spiega come aggiungere il campo primario di due tipi di dati diversi e come consentire a Milvus di assegnare automaticamente i valori del campo primario.

Panoramica

In una collezione, la chiave primaria di ogni entità deve essere globalmente unica. Quando si aggiunge un campo primario, è necessario impostare esplicitamente il suo tipo di dati su VARCHAR o INT64. L'impostazione del tipo di dati su INT64 indica che le chiavi primarie devono essere un numero intero simile a 12345; l'impostazione del tipo di dati su VARCHAR indica che le chiavi primarie devono essere una stringa simile a my_entity_1234.

Si può anche abilitare AutoID per far sì che Milvus assegni automaticamente le chiavi primarie alle entità in arrivo. Una volta abilitato l'AutoID nella propria collezione, non includere le chiavi primarie quando si inseriscono le entità.

Il campo primario di una collezione non ha un valore predefinito e non può essere nullo.

Utilizzare le chiavi primarie Int64

Per utilizzare chiavi primarie di tipo Int64, è necessario impostare datatype su DataType.INT64 e is_primary su true. Se si desidera che Milvus allarghi le chiavi primarie per le entità in arrivo, impostare anche auto_id su 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
    ]
}"

Utilizzare le chiavi primarie VarChar

Per utilizzare le chiavi primarie VarChar, oltre a modificare il valore del parametro data_type in DataType.VARCHAR, è necessario impostare anche il parametro max_length per il campo.

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
    }
}"

Tradotto daDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?