Primärfeld & AutoID
Das Primärfeld dient der eindeutigen Identifizierung einer Entität. Auf dieser Seite erfahren Sie, wie Sie das Primärfeld von zwei verschiedenen Datentypen hinzufügen können und wie Sie Milvus in die Lage versetzen, Primärfeldwerte automatisch zuzuordnen.
Übersicht
In einer Sammlung sollte der Primärschlüssel jeder Entität global eindeutig sein. Wenn Sie das Primärfeld hinzufügen, müssen Sie seinen Datentyp explizit auf VARCHAR oder INT64 einstellen. Die Einstellung des Datentyps auf INT64 bedeutet, dass die Primärschlüssel eine ganze Zahl ähnlich wie 12345
sein sollten; die Einstellung des Datentyps auf VARCHAR bedeutet, dass die Primärschlüssel eine Zeichenkette ähnlich wie my_entity_1234
sein sollten.
Sie können auch AutoID aktivieren, damit Milvus automatisch Primärschlüssel für eingehende Entitäten zuweist. Sobald Sie AutoID in Ihrer Sammlung aktiviert haben, sollten Sie beim Einfügen von Entitäten keine Primärschlüssel verwenden.
Das Primärfeld in einer Sammlung hat keinen Standardwert und kann nicht null sein.
Int64-Primärschlüssel verwenden
Um Primärschlüssel vom Typ Int64 zu verwenden, müssen Sie datatype
auf DataType.INT64
und is_primary
auf true
setzen. Wenn Milvus auch die Primärschlüssel für die eingehenden Entitäten zuweisen soll, setzen Sie auto_id
auf 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
]
}"
Verwendung von VarChar-Primärschlüsseln
Um VarChar-Primärschlüssel zu verwenden, müssen Sie nicht nur den Wert des Parameters data_type
auf DataType.VARCHAR
ändern, sondern auch den Parameter max_length
für das Feld festlegen.
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
}
}"