إنشاء مجموعة

يصف هذا الموضوع كيفية إنشاء مجموعة في 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)