کلیکشن بنانا

یہ موضوع ملوس میں کسی کلیکشن بنانے کا طریقہ بیان کرتا ہے۔

ایک کلیکشن ایک یا ایک سے زیادہ پارٹیشنوں سے مشتمل ہوتی ہے۔ نئے کلیکشن بناتے وقت، ملوس خودبخود ایک ‍‍_default نام کی پہلی پارٹیشن بنا دیتا ہے۔

نیچے دیے گئے مثال میں، ایک کلیکشن book بناتے ہیں جِس میں دو شارڈز ہوتے ہیں۔ اس میں ایک ابتدائی کلید فیلڈ جس کا نام book_id ہے، ایک INT64 اسکالر فیلڈ جس کا نام word_count ہے، اور ایک دو بُعدی فَلوٹنگ پوائنٹ ویکٹر فیلڈ جس کا نام book_intro ہے، شامل ہوتے ہیں۔ حقیقی استعمال میں، مثال میں دی گئی سمتوں سے زیادہ ڈیمنشن کی ویکٹر استعمال ہوسکتی ہیں۔

کلیکشن سکیما کی تعریف

بنانے جانے والی کلیکشن میں ایک ابتدائی کلید فیلڈ اور ایک ویکٹر فیلڈ شامل ہونا لازمی ہے۔ ابتدائی کلید فیلڈ INT64 اور VarChar ڈیٹا ٹائپ کو سپورٹ کرتا ہے۔

نصیحت: کلیکشن کی سکیما کی تعریف، MYSQL میں ایک ٹیبل ساخت کرنے کی ساخت کی طرح ہوتی ہے۔

سب سے پہلے،ضروری پیرامیٹرز تیار کریں، جیسے کے فیلڈ سکیماز، کلیکشن سکیماز، اور کلیکشن کا نام۔

کلیکشن سکیما کی تعریف سے پہلے، کلیکشن میں ہر فیلڈ کے لئے ایک سکیما تیار کریں۔ ملوس کے دستخطی آپشن ڈیٹا اندراج کو سادہ کرنے کے لئے اجازت دیتا ہے کہ ہر اسکیلر فیلڈ کے لئے ایک پہلے سے مقرر شدہ قیمت بیان کی جا سکتی ہے (ابتدائی کلید فیلڈ کے علاوہ)۔ یعنی اگر کسی فیلڈ کو ڈیٹا اندراج کے وقت خالی چھوڑ دیا گیا ہو تو، تو اس فیلڈ کے لئے فیلڈ سکیما کے بنانے کے دوران تشکیل شدہ پہلے سے مقرر کردہ قیمت کا استعمال ہو گا۔

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 بنانے جانے والی کلیکشن کا نام N/A
Description بنانے جانے والی کلیکشن کی تفصیل N/A
AutoID خودبخودی طریقے سے ID (ابتدائی کلید) کی تفویض کرنے یا ترک کرنے کے لئے استعمال ہونے والا سوئچ ٹھیک یا غلط
Fields بنانے جانے والی کلیکشن میں موجود فیلڈز کی سکیماز۔ مزید معلومات کے لئے، سکیما دیکھیں N/A
EnableDynamicField کیا ڈائنامک سکیما کو فعال کرنا ہے یا نہیں۔ ڈائنامک سکیما کے بارے میں مزید معلومات کے لئے، ڈائنامک سکیما اور کلیکشن منیجمنٹ یوزر گائیڈ دیکھیں N/A
entity.Field Name بنانے جانے والے فیلڈ کا نام N/A
PrimaryKey کیا یہ فیلڈ ابتدائی کلید ہے یا نہیں۔ ابتدائی کلید فیلڈ کے لئے لازمی ہے N/A
Description فیلڈ کی تفصیل N/A
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 اسٹرنگ کو میپنگ کرنا جو مخصوص ڈیٹا ٹائپ کے پیرامیٹرز کو سیٹ کرتا ہے N/A
IndexParams کلیکشن انڈیکس پیرامیٹرز کو سیٹ کرنے والے اسٹرنگ کو میپنگ کرنا N/A
IsDynamic کیا یہ فیلڈ ڈائنامک سکیما کو فعال کرتا ہے یا نہیں N/A
IsPartitionKey کیا یہ فیلڈ پارٹیشن کی طرح عمل کرتا ہے N/A

تعریف شدہ ساختری کے مطابق کلیکشن بنانا

اگلا، مخصوص سکیما کا استعمال کرتے ہوئے کلیکشن بنائیں۔

err = milvusClient.CreateCollection(
    context.Background(), // ctx
    schema,
    2, // shardNum
)
if err != nil {
    log.Fatal("Failed to create collection: ", err.Error())
}
پیرامیٹر تفصیل آپشنز
ctx API کال کے عمل کو کنٹرول کرنے والا کنٹیکسٹ N/A
shardNum بنانے جانے والی کلیکشن میں شارڈز کی تعداد [1,16]

تھوڑی سی پابندیاں

وسائل کی تشکیل

خصوصیت زیادہ سے زیادہ حد
کلیکشن نام کی لمبائی 255 حروف
کلیکشن میں پارٹیشن کی تعداد 4,096
کلیکشن میں فیلڈز کی تعداد 64
کلیکشن میں شارڈز کی تعداد 16

مقدار معمولی_قیمت

  • معمولی_قیمت صرف غیر-ایرے اور غیر-JSON اسکیلر فیلڈز کے لئے لاگو ہوتی ہے۔
  • معمولی_قیمت ابتدائی کلیدوں پر لاگو نہیں ہوتی۔
  • معمولی_قیمت کا ڈیٹا ٹائپ، جو dtype میں مخصوص کیا گیا ہو، اس کے برابر ہونا چاہئے، ورنہ خرابیاں واقع ہو سکتی ہیں۔
  • اگر auto_id استعمال ہوتا ہے تو باقی تمام فیلڈز کو معمولی اقدار استعمال کرنے کی اجازت نہیں ہوتی۔ دوسرے الفاظ میں، اندراج یا اپ ڈیٹ عمل کرتے وقت، کم از کم ایک فیلڈ کے لئے قیمت کا تفصیل ضرور کرنی چاہئے، ورنہ خرابیاں واقع ہو سکتی ہیں۔

کیا کلیکشن موجود ہے یا نہیں؟

collExists ، err := milvusClient.HasCollection(ctx، collectionName)
اگر err != nil {
    log.Fatal("Kya kisi کلیکشن کی موجودگی کا تصدیق کرنے میں ناکام ہوگیا: "، err.Error())
}

کلیکشن کو حذف کریں

_ = milvusClient.DropCollection(ctx، collectionName)

تمام کلیکشنز کا استعلام کریں

collections، err := milvusClient.ListCollections(ctx)