একটি সংগ্রহ তৈরি করা

এই বিষয়টি বিবেচনা করে যে, মিলভুসে কিভাবে একটি সংগ্রহ তৈরি করা যায়।

একটি সংগ্রহে এক বা একাধিক পার্টিশন থাকতে পারে। একটি নতুন সংগ্রহ তৈরি করা হলে, মিলভুস স্বয়ংক্রিয়ভাবে _default নামের একটি পূর্বনির্ধারিত পার্টিশন তৈরি করে।

নীচের উদাহরণটি book নামের একটি সংগ্রহ তৈরি করে যা দুইটি শার্ড হয়। এটির মধ্যে book_id নামের প্রাথমিক কী ফিল্ড, word_count নামের INT64 স্কেলার ফিল্ড এবং book_intro নামের দুই-মাত্রামূল্য ভেক্টর ফিল্ড রয়েছে। বাস্তব অনুপ্রয়োগগুলি উদাহরণে উল্লেখিত মাত্রার চেয়ে ভেক্টর মাত্রা উচ্চোচ্চ হতে পারে।

সংগ্রহ স্কিমা নির্ধারণ

তৈরি করতে অঙ্গগুলির স্কিমা, সংগ্রহ স্কিমা এবং সংগ্রহের নাম সহ প্রয়োজনীয় প্যারামিটারগুলি যোগ করুন।

সংগ্রহ স্কিমা নির্ধারণ করার আগে, সংগ্রহের প্রতি ক্ষেত্রের স্কিমা তৈরি করুন। ডেটা প্রবেশের জটিলতা সহজীকরণের জন্য, মিলভুস প্রতিটি স্কেলার ফিল্ডের জন্য (প্রাথমিক কী ক্ষেত্র ছাড়া) পূর্বনির্ধারিত মান নির্ধারণ করার অনুমতি দেয়। এটার মানে যে, যদি ডেটা প্রবেশের সময় কোনও ফিল্ড খালি রাখা যায়, তবে স্কীমা তৈরির সময় এই ফিল্ডের জন্য কনফিগার করা পূর্বনির্ধারিত মানটি ব্যবহার করা হবে।

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 স্বয়ংক্রিয় আইডি (প্রাথমিক কী) বরাদ্দ করা অনুমোদিত করার বিকল্প সত্য অথবা মিথ্যা
Fields তৈরি হতে যাচ্ছে সংগ্রহের পেশা স্কিমার। বিস্তারিত আপনি স্কিমা দেখতে পারেন, প্রতিটি স্কালার ফিল্ডের জন্য ডিফল্ট মান নির্ধারণ করা হয় যাতে ডেটা প্রবেশের সময় যদি ফিল্ডটি ফাঁকা থাকে, তবে ফিল্ড স্কিমা তৈরির সময় এই ফিল্ডের জন্য কনফিগার করা পূর্বনির্ধারিত মানটি ব্যবহার করা হবে N/A
EnableDynamicField ডায়নামিক স্কিমা সক্রিয় করা কি না। বিস্তারিত জানতে দেখুন ডায়নামিক স্কিমা এবং সংগ্রহ ব্যবস্থাপনা ব্যবহারকারী গাইড N/A
entity.Field Name তৈরি করতে যে ক্ষেত্রের নাম N/A
PrimaryKey এই ফিল্ডটি প্রাথমিক কী কিনা। প্রাথমিক কী ক্ষেত্রের জন্য প্রয়োজন N/A
AutoID ফিল্ডের মান স্বয়ংক্রিয়ভাবে বাড়ায় কিনা 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("সংগ্রহ তৈরি করতে ব্যরথ: ", err.Error())
}
প্যারামিটার বিবরণ বিকল্প
ctx API কল প্রক্রিয়া নিয়ন্ত্রণ করার জন্য সংদেশ N/A
shardNum তৈরি হওয়া সংগ্রহে শার্ডের সংখ্যা [1,16]

সংগ্রহ প্রতিবন্ধকরণ

সম্পদ কনফিগারেশন

বৈশিষ্ট্য সর্বাধিক সীমা
সংগ্রহের নামের দৈর্ঘ্য 255 টি অক্ষর
সংগ্রহে বিভাজনের সংখ্যা 4,096
সংগ্রহে ফিল্ডের সংখ্যা 64
সংগ্রহে শার্ডের সংখ্যা 16

প্যারামিটার default_value

  • default_value কেবলমাত্র গণনাশীল এবং JSON স্কেলার ফিল্ডগুলিতে প্রযোগ হয়।
  • 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)