کلیکشن بنانا
یہ موضوع ملوس میں کسی کلیکشن بنانے کا طریقہ بیان کرتا ہے۔
ایک کلیکشن ایک یا ایک سے زیادہ پارٹیشنوں سے مشتمل ہوتی ہے۔ نئے کلیکشن بناتے وقت، ملوس خودبخود ایک _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)