Bidang Utama & AutoID
Field utama mengidentifikasi sebuah entitas secara unik. Halaman ini memperkenalkan cara menambahkan field utama dari dua tipe data yang berbeda dan cara mengaktifkan Milvus untuk mengalokasikan nilai field utama secara otomatis.
Gambaran Umum
Dalam sebuah koleksi, kunci utama dari setiap entitas harus unik secara global. Ketika menambahkan field utama, Anda harus secara eksplisit mengatur tipe datanya ke VARCHAR atau INT64. Mengatur tipe data ke INT64 menunjukkan bahwa kunci utama harus berupa bilangan bulat yang mirip dengan 12345
; Mengatur tipe data ke VARCHAR menunjukkan bahwa kunci utama harus berupa string yang mirip dengan my_entity_1234
.
Anda juga dapat mengaktifkan AutoID untuk membuat Milvus secara otomatis mengalokasikan kunci primer untuk entitas yang masuk. Setelah Anda mengaktifkan AutoID di koleksi Anda, jangan sertakan kunci primer saat memasukkan entitas.
Field utama dalam koleksi tidak memiliki nilai default dan tidak boleh bernilai nol.
Menggunakan Kunci Primer Int64
Untuk menggunakan kunci primer bertipe Int64, Anda perlu mengatur datatype
ke DataType.INT64
dan mengatur is_primary
ke true
. Jika Anda juga membutuhkan Milvus untuk mengalokasikan kunci primer untuk entitas yang masuk, atur juga auto_id
ke 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
]
}"
Menggunakan Kunci Primer VarChar
Untuk menggunakan kunci primer VarChar, selain mengubah nilai parameter data_type
menjadi DataType.VARCHAR
, Anda juga perlu mengatur parameter max_length
untuk field tersebut.
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
}
}"