الحقل الأساسي والمعرف التلقائي
يحدد الحقل الأساسي هوية الكيان بشكل فريد. تقدم هذه الصفحة كيفية إضافة الحقل الأساسي لنوعين مختلفين من البيانات، وكيفية تمكين ميلفوس من تخصيص قيم الحقل الأساسي تلقائياً.
نظرة عامة
في المجموعة، يجب أن يكون المفتاح الأساسي لكل كيان فريدًا عالميًا. عند إضافة الحقل الأساسي، تحتاج إلى تعيين نوع بياناته صراحةً إلى VARCHAR أو INT64. يشير تعيين نوع بياناته إلى INT64 إلى أن المفاتيح الأساسية يجب أن تكون عددًا صحيحًا مشابهًا لـ 12345 ؛ يشير تعيين نوع بياناته إلى VARCHAR إلى أن المفاتيح الأساسية يجب أن تكون سلسلة مشابهة لـ my_entity_1234.
يمكنك أيضًا تمكين AutoID لجعل Milvus يخصص المفاتيح الأساسية تلقائيًا للكيانات الواردة. بمجرد تمكين AutoID في مجموعتك، لا تقم بتضمين المفاتيح الأساسية عند إدراج الكيانات.
لا يحتوي الحقل الأساسي في المجموعة على قيمة افتراضية ولا يمكن أن يكون فارغًا.
استخدام المفاتيح الأساسية Int64
لاستخدام المفاتيح الأساسية من نوع Int64، تحتاج إلى تعيين datatype إلى DataType.INT64 وتعيين is_primary إلى true. إذا كنت تحتاج أيضًا إلى تخصيص ميلفوس للمفاتيح الأساسية للكيانات الواردة، فقم أيضًا بتعيين auto_id إلى 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.INT64,
is_primary_key: true,
max_length: 100,
},
];
import "github.com/milvus-io/milvus/client/v2/entity"
schema := entity.NewSchema()
schema.WithField(entity.NewField().WithName("my_id").
WithDataType(entity.FieldTypeInt64).
WithIsPrimaryKey(true).
WithIsAutoID(true),
)
export primaryField='{
"fieldName": "my_id",
"dataType": "Int64",
"isPrimary": true
}'
export schema="{
\"autoID\": true,
\"fields\": [
$primaryField
]
}"
استخدام المفاتيح الأساسية VarChar المتغيرة
لاستخدام مفاتيح VarChar الأساسية، بالإضافة إلى تغيير قيمة المعلمة data_type إلى DataType.VARCHAR ، تحتاج أيضًا إلى تعيين المعلمة max_length للحقل.
schema.add_field(
field_name="my_id",
datatype=DataType.VARCHAR,
# highlight-start
is_primary=True,
auto_id=True,
max_length=512,
# highlight-end
)
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
});
schema := entity.NewSchema()
schema.WithField(entity.NewField().WithName("my_id").
WithDataType(entity.FieldTypeVarChar).
// highlight-start
WithIsPrimaryKey(true).
WithIsAutoID(true).
WithMaxLength(512),
// highlight-end
)
export primaryField='{
"fieldName": "my_id",
"dataType": "VarChar",
"isPrimary": true
}'
export schema="{
\"autoID\": true,
\"fields\": [
$primaryField
],
\"params\": {
\"max_length\": 512
}
}"