संग्रह बनाना

इस विषय में विवरण है कि Milvus में संग्रह कैसे बनाया जाता है।

संग्रह में एक या एक से अधिक विभाजन शामिल होते हैं। नई संग्रह बनाते समय, Milvus आपके द्वारा एक डिफ़ॉल्ट विभाजन जिसका नाम _default होता है, स्वचालित रूप से बना देता है।

निम्नलिखित उदाहरण में book नाम का एक संग्रह दो शार्ड्स के साथ बनाया गया है। इसमें book_id नाम का प्राथमिक कुंजी फ़ील्ड, word_count नाम का INT64 स्कैलर फ़ील्ड, और 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 संग्रह की स्वचालित आईडी (प्राथमिक कुंजी) साजित करने को सक्षम या अक्षम करने के लिए स्विच True या False
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 विशेष डेटा प्रकार के लिए पैरामीटर सेट करने वाले स्ट्रिंग पर मैपिंग एन/ए
IndexProps संग्रह इंडेक्स पैरामीटर सेट करने वाले स्ट्रिंग पर मैपिंग एन/ए
IsDynamic क्या यह फ़ील्ड डायनामिक स्कीमा को सक्षम करता है एन/ए
IsPartitionKey क्या यह फ़ील्ड विभाजन कुंजी के रूप में कार्य करता है एन/ए

परिभाषित संरचना के आधार पर संग्रह बनाएँ

अगले, निर्दिष्ट संरचना का उपयोग करके संग्रह बनाएँ।

err = milvusClient.CreateCollection(
    context.Background(), // ctx
    schema,
    2, // shardNum
)
if err != nil {
    log.Fatal("Failed to create collection: ", err.Error())
}
पैरामीटर विवरण विकल्प
ctx API कॉल प्रक्रिया को नियंत्रित करने के लिए संदर्भ एन/ए
shardNum बनाए जाने वाले संग्रह में शार्ड की संख्या [1,16]

संग्रह प्रतिबंध

संसाधन विन्यास

विशेषता अधिकतम सीमा
संग्रह का नाम लंबाई 255 अक्षर
संग्रह में विभाजनों की संख्या 4,096
संग्रह में फ़ील्ड की संख्या 64
संग्रह में शार्ड की संख्या 16

पैरामीटर default_value

  • default_value केवल गैर-सरणी और गैर-JSON स्कैलर फ़ील्ड्स के लिए लागू होता है।
  • default_value प्राथमिक कुंजी लागू नहीं होती है।
  • default_value का डेटा प्रकार dtype में निर्दिष्ट किया गया डेटा प्रकार के समान होना चाहिए, अन्यथा त्रुटियाँ उत्पन्न हो सकती हैं।
  • यदि auto_id का उपयोग किया जाता है, तो शेष सभी फ़ील्डों को डिफ़ॉल्ट मानों का उपयोग करने की अनुमति नहीं है। अर्थात, इंसर्ट या अपड