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