إنشاء مجموعة
يصف هذا الموضوع كيفية إنشاء مجموعة في Milvus.
تتكون المجموعة من قسم واحد أو أكثر. عند إنشاء مجموعة جديدة، ينشئ Milvus تلقائيًا قسمًا افتراضيًا يحمل الاسم "_default".
المثال التالي يقوم بإنشاء مجموعة تُسمى "book" تحتوي على قسمين. وهي تشمل حقل مفتاح أساسي يُسمى "book_id" وحقلاً مدرجًا من نوع "INT64" يُسمى "word_count"، بالإضافة إلى حقل نصي ذو بُعدين يُعرف باسم "book_intro". قد تستخدم التطبيقات الفعلية أبعادًا ناقصة من تلك الموجودة في المثال.
تعريف مخطط المجموعة
يجب أن تتضمن المجموعة التي سيتم إنشاؤها حقل مفتاح أساسي وحقل نسقي. يدعم حقل المفتاح الرئيسي أنواع البيانات INT64 وVarChar.
نصيحة: تعريف مخطط المجموعة مشابه لتعريف هيكل الجدول في MYSQL.
أولاً، قم بإعداد المعلمات الضرورية بما في ذلك مخططات الحقول ومخططات المجموعة وأسماء المجموعات.
قبل تحديد مخطط مجموعة، قم بإنشاء مخطط لكل حقل في المجموعة. لتبسيط تعقيد إدخال البيانات، تسمح Milvus بتحديد قيمة افتراضية لكل حقل طالما أنه حقل نسقي (باستثناء حقل المفتاح الرئيسي). وهذا يعني أنه إذا ترك حقل فارغاً أثناء إدخال البيانات، فسيتم استخدام القيمة الافتراضية المكونة لهذا الحقل أثناء إنشاء مخطط الحقل.
var (
collectionName = "book"
)
schema := &entity.Schema{
CollectionName: collectionName,
Description: "Test book search",
Fields: []*entity.Field{
{
Name: "book_id",
DataType: entity.FieldTypeInt64,
PrimaryKey: true,
AutoID: false,
},
{
Name: "word_count",
DataType: entity.FieldTypeInt64,
PrimaryKey: false,
AutoID: false,
},
{
Name: "book_intro",
DataType: entity.FieldTypeFloatVector,
TypeParams: map[string]string{
"dim": "2",
},
},
},
EnableDynamicField: true
}
النوع | المعامل | الوصف | الخيارات |
---|---|---|---|
entity.Schema |
CollectionName |
اسم المجموعة التي سيتم إنشاؤها | غير متاح |
Description |
وصف المجموعة التي سيتم إنشاؤها | غير متاح | |
AutoID |
التبديل المستخدم لتمكين أو تعطيل تخصيص الهوية التلقائي (مفتاح رئيسي) | "صحيح" أو "غير صحيح" | |
Fields |
مخططات الحقول في المجموعة التي سيتم إنشاؤها. لمزيد من المعلومات، انظر المخطط | غير متاح | |
EnableDynamicField |
ما إذا كان سيتم تمكين المخطط الديناميكي. لمزيد من المعلومات حول المخطط الديناميكي، انظر دليل المستخدم للمخطط وإدارة المجموعة | غير متاح | |
entity.Field |
Name |
اسم الحقل الذي سيتم إنشاؤه | غير متاح |
PrimaryKey |
ما إذا كان هذا الحقل هو مفتاح رئيسي. مطلوب لحقول المفتاح الرئيسي | غير متاح | |
AutoID |
ما إذا كانت قيمة الحقل متزايدة تلقائيًا. مطلوب لحقول المفتاح الرئيسي | غير متاح | |
Description |
وصف الحقل | غير متاح | |
DataType |
نوع البيانات للحقل الذي سيتم إنشاؤه | بالنسبة لحقول المفتاح الرئيسي: - entity.FieldTypeInt64(numpy.int64) - entity.FieldTypeVarChar(VARCHAR) للحقول النسقية: - entity.FieldTypeBool(Boolean) - entity.FieldTypeInt8(numpy.int8) - entity.FieldTypeInt16(numpy.int16) - entity.FieldTypeInt32(numpy.int32) - entity.FieldTypeInt64(numpy.int64) - entity.FieldTypeFloat(numpy.float32) - entity.FieldTypeDouble(numpy.double) - entity.FieldTypeVarChar(VARCHAR) لحقول الفيكتور: - entity.FieldTypeBinaryVector (فيكتور ثنائي) - entity.FieldTypeFloatVector (فيكتور عائم) |
|
TypeParams |
تعيين الخريطة إلى السلسلة التي تحدد المعلمات لأنواع البيانات المحددة | غير متاح | |
IndexParams |
تعيين الخريطة إلى السلسلة التي تعين معلمات فهرس المجموعة | غير متاح | |
IsDynamic |
ما إذا كان هذا الحقل يتيح المخطط الديناميكي | غير متاح | |
IsPartitionKey |
ما إذا كان هذا الحقل يعمل كمفتاح تقسيم | غير متاح |
إنشاء مجموعة استنادًا إلى الهيكل المحدد
ثم، قم بإنشاء مجموعة باستخدام المخطط المحدد.
err = milvusClient.CreateCollection(
context.Background(), // ctx
schema,
2, // shardNum
)
if err != nil {
log.Fatal("فشل في إنشاء المجموعة: ", err.Error())
}
المعامل | الوصف | الخيارات |
---|---|---|
ctx |
السياق للتحكم في عملية استدعاء واجهة برمجة التطبيقات (API) | غير متاح |
shardNum |
عدد الأقسام في المجموعة التي سيتم إنشاؤها | [1,16] |
قيود الحصول على المجموعة
تهيئة المورد
ميزة | الحد الأقصى |
---|---|
طول اسم المجموعة | 255 حرفًا |
عدد الأقسام في المجموعة | 4,096 |
عدد الحقول في المجموعة | 64 |
عدد الشرائح في المجموعة | 16 |
المعلمة default_value
- ينطبق
default_value
فقط على الحقول ذات القيمة الطلق والجدولة غير المتسلسلة. - لا ينطبق
default_value
على المفاتيح الرئيسية. - يجب أن يكون نوع البيانات في
default_value
نفس نوع البيانات المحدد فيdtype
، وإلا قد تحدث أخطاء. - إذا تم استخدام
auto_id
، لا يُسمح بتعيين قيم افتراضية لجميع الحقول المتبقية. بمعنى آخر، عند القيام بعمليات الإدراج أو التحديث، يجب تحديد قيمة لما لا يقل عن حقل واحد، وإلا قد تحدث أخطاء.
التحقق مما إذا كانت هناك مجموعة موجودة
collExists, err := milvusClient.HasCollection(ctx, collectionName)
if err != nil {
log.Fatal("فشل في التحقق مما إذا كانت المجموعة موجودة: ", err.Error())
}
حذف مجموعة
_ = milvusClient.DropCollection(ctx, collectionName)
الاستعلام عن جميع المجموعات
collections, err := milvusClient.ListCollections(ctx)