संग्रह बनाना
इस विषय में विवरण है कि 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
का उपयोग किया जाता है, तो शेष सभी फ़ील्डों को डिफ़ॉल्ट मानों का उपयोग करने की अनुमति नहीं है। अर्थात, इंसर्ट या अपड