भार (Payload)

Qdrant की एक महत्वपूर्ण विशेषता में से एक है कि यह वेक्टर्स के बाहर अतिरिक्त जानकारी (स्टोरेज प्रबंधन व्यापारिक गुणधर्म) को संग्रहित करने की क्षमता है। Qdrant शब्दावली में, इस अतिरिक्त जानकारी को "पेलोड" के रूप में संदर्भित किया जाता है।

Qdrant आपको JSON का उपयोग करके प्रतिनिधित्व करने वाली किसी भी जानकारी को संग्रहित करने की अनुमति देता है।

यहां एक सामान्य पेलोड का एक उदाहरण है:

{
    "नाम": "जैकेट",
    "रंग": ["लाल", "नीला"],
    "मात्रा": 10,
    "मूल्य": 11.99,
    "स्थान": [
        {
            "देशान्तर": 52.5200,
            "अक्षांश": 13.4050
        }
    ],
    "समीक्षा": [
        {
            "उपयोगकर्ता": "एलिस",
            "स्कोर": 4
        },
        {
            "उपयोगकर्ता": "बॉब",
            "स्कोर": 5
        }
    ]
}

पेलोड प्रकार

पेलोड को संग्रहित करने के अतिरिक्त, Qdrant आपको कुछ प्रकार के मूल्यों पर आधारित खोज करने की भी अनुमति देता है। यह सुविधा खोज प्रक्रिया के दौरान अतिरिक्त फ़िल्टर्स के रूप में लागू की गई है और सांख्यिक समानता की ऊपर अनुकूल तर्क को संडेलित करने की अनुमति देती है।

फिल्टर प्रक्रिया के दौरान, Qdrant मूल्यों की स्थिति की शर्तों की जांच करेगा जो फ़िल्टर मानदंडों को पूरा करते हैं। यदि संग्रहित मूल्य प्रकार फ़िल्टर मानदंडों को पूरा नहीं करता है, तो यह अप्रासंगिक माना जाता है।

उदाहरण के रूप में, स्ट्रिंग डेटा पर सीमा शर्तों को लागू करना खाली आउटपुट का परिणाम देगा।

हालांकि, सरणियों (एक ही प्रकार के अनेक मान) के संबंध में संबंधित व्यवस्था थोड़ी अलग है। जब हम सरणी पर फ़िल्टर लागू करते हैं, यदि सरणी में कम से कम एक मान शर्तों को पूरा करता है, तो फ़िल्टर सफल होगा।

फ़िल्टर प्रक्रिया का विस्तृत चर्चा फ़िल्टरिंग खंड में की जाती है।

चलो, चलें इसे देखते हैं कि Qdrant द्वारा समर्थित डेटा प्रकार किन-किन हैं:

पूर्णांक

पूर्णांक - 64-बिट पूर्णांक, -9223372036854775808 से 9223372036854775807 तक।

एकल और एकाधिक पूर्णांक मानों के उदाहरण:

{
    "मात्रा": 10,
    "साइज़ेस": [35, 36, 38]
}

फ्लोट

फ्लोट - 64-बिट फ्लोटिंग प्वाइंट नंबर।

एकल और एकाधिक फ्लोट मानों के उदाहरण:

{
    "मूल्य": 11.99,
    "रेटिंग": [9.1, 9.2, 9.4]
}

बूलियन

बूल - बाइनरी मान। सही या गलत के बराबर।

एकल और एकाधिक बूल मानों के उदाहरण:

{
    "पहुंचाया गया": सत्य,
    "रिप्लाइज़": [बराबर, बराबर, सही, बराबर]
}

कीवर्ड

कीवर्ड - स्ट्रिंग मान।

एकल और एकाधिक कीवर्ड मानों के उदाहरण:

{
    "नाम": "एलिस",
    "मित्र": [
        "बॉब",
        "ईवा",
        "जैक"
    ]
}

ज्योग्राफिक कोऑर्डिनेट्स

जियो भूगोलिक निर्देशांकों को प्रतिनिधित करने के लिए उपयोग किया जाता है।

एकल और एकाधिक जियो मानों के उदाहरण:

{
    "स्थान": {
        "देशान्तर": 52.5200,
        "अक्षांश": 13.4050
    },
    "शहर": [
        {
            "देशान्तर": 51.5072,
            "अक्षांश": 0.1276
        },
        {
            "देशान्तर": 40.7128,
            "अक्षांश": 74.0060
        }
    ]
}

निर्देशांकों को दो क्षेत्रों को शामिल करने वाले एक ऑब्जेक्ट के रूप में वर्णित किया जाना चाहिए: देशान्तर - देशांतर को प्रतिनिधित करते हैं, अक्षांश - अक्षांश को प्रतिनिधित करते हैं।

पेलोड के साथ बिंदु बनाना

REST API (वास्तुकला)

PUT /collections/{collection_name}/points

{
    "points": [
        {
            "id": 1,
            "vector": [0.05, 0.61, 0.76, 0.74],
            "payload": {"city": "बर्लिन", "price": 1.99}
        },

दिशा-प्रति परिष्करण

REST API (विचारयता):

POST /collections/{collection_name}/points/payload

{
    "payload": {
        "property1": "string",
        "property2": "string"
    },
    "points": [
        0, 3, 100
    ]
}

परिष्कृति payloads का हटाना

इस विधि से निर्दिष्ट payload कुंजियां निर्दिष्ट बिंदुओं से हटा दी जाती है।

REST API (विचारयता):

POST /collections/{collection_name}/points/payload/delete

{
    "keys": ["color", "price"],
    "points": [0, 3, 100]
}

Payloads को साफ़ करना

इस विधि से निर्दिष्ट बिंदुओं से सभी payload कुंजियां हटा दी जाती है।

REST API (विचारयता):

POST /collections/{collection_name}/points/payload/clear

{
    "points": [0, 3, 100]
}

आप models.FilterSelector का भी उपयोग कर सकते हैं दिए गए फ़िल्टर शर्तों से मेल खाने वाले बिंदुओं को हटाने के लिए, बहुतायता को दिखाने की बजाय।

पेरिश्रेणियों की सूचीकरण

फ़िल्टर की समर्थतापूर्ण खोज के लिए, Qdrant आपको किसी फ़ील्ड के नाम और प्रकार को निर्दिष्ट करके payload फ़ील्ड्स के लिए एक सूचीकरण बनाने की अनुमति देता है।

इंडेक्स किए गए fields वेक्टर इंडेक्स पर भी प्रभाव डालते हैं।

व्यावसायिक दृष्टिकोण से, सिफारिश की जाती है कि उन फ़ील्ड पर इंडेक्स बनाया जाए जो परिणामों को सबसे अधिक प्रतिबंधित करने के आसंभावित हैं। उदाहरण के लिए, object ID पर इंडेक्स बनाना वर्तमान रिकॉर्ड के लिए अनन्य होगा, जबकि रंग पर इंडेक्स केवल कुछ संभावित मानों के लिए होता है।

कई फ़ील्ड्स को सम्मिलित क्वेरी में शामिल करने वाले में, Qdrant सबसे प्रतिबंधक इंडेक्स का प्रयास करेगा।

किसी फ़ील्ड के लिए इंडेक्स बनाने के लिए, निम्नलिखित का उपयोग किया जा सकता है:

REST API (विचारयता)

PUT /collections/{collection_name}/index

{
    "field_name": "name of field to index",
    "field_schema": "keyword"
}

इंडेक्स किए गए fields collection info API के साथ payload schema में प्रदर्शित होते हैं।

उदाहरण payload schema:

{
    "payload_schema": {
        "property1": {
            "data_type": "keyword"
        },
        "property2": {
            "data_type": "integer"
        }
    }
}