পেয়্রলোড

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

Qdrant আপনাকে JSON ব্যবহার করে প্রতিটি তথ্য সংরক্ষণ করার সুযোগ দেয়।

এখানে একটি স্বাভাবিক পেয়্রলোডের একটি উদাহরণ:

{
    "name": "jacket",
    "color": ["red", "blue"],
    "quantity": 10,
    "price": 11.99,
    "location": [
        {
            "longitude": 52.5200,
            "latitude": 13.4050
        }
    ],
    "reviews": [
        {
            "user": "Alice",
            "score": 4
        },
        {
            "user": "Bob",
            "score": 5
        }
    ]
}

পেয়্রলোড প্রকার

পেয়্রলোড সংরক্ষণের পাশাপাশি, Qdrant আপনাকে নির্দিষ্ট মানের উপর ভিত্তি করে অনুসন্ধান করার অনুমতি দেয়। এই বৈশিষ্ট্যটি অনুসন্ধান প্রক্রিয়ার সময় অতিরিক্ত ফিল্টার হিসাবে প্রয়োজন এবং ইউনিক লজিক এম্বেড করার সুযোগ দেয়।

ফিল্টারিং প্রক্রিয়ার সময়, Qdrant ফিল্টার মান পরিসীমা পূরণের শর্তগুলি পরীক্ষা করবে। যদি সংরক্ষিত মানের ধরন ফিল্টার মেয়াদ পূরণের শর্তগুলি পূরণ করে না, তবে এটি অসন্তুষ্ট মনে করা হয়।

যেমন, স্ট্রিং তথ্যকে রেঞ্জ শর্তাদি প্রয়োগ করা মানে খালি আউটপুট দিবে।

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

ফিল্টারিং প্রক্রিয়ার বিস্তারিত আলাপ ফিল্টারিং বিভাগে চালিত হয়।

আসুন, চলুন Qdrant দ্বারা সমর্থিত ডেটা টাইপ দেখে নেই:

ইন্টিজার

পূর্ণসংখ্যা - 64-বিট পূর্ণসংখ্যা, -9223372036854775808 থেকে 9223372036854775807 পর্যন্ত।

একটি একক এবং একাধিক পূর্ণসংখ্যা মানের উদাহরণ:

{
    "quantity": 10,
    "sizes": [35, 36, 38]
}

ফ্লোট

ফ্লোট - 64-বিট ফ্লোটিং পয়েন্ট নম্বর।

একটি একক এবং একাধিক ফ্লোট মানের উদাহরণ:

{
    "price": 11.99,
    "rating": [9.1, 9.2, 9.4]
}

বুলিয়ান

বুলি - বাইনারি মান। true বা false এর সমান।

একটি একক এবং একাধিক বুলি মানের উদাহরণ:

{
    "delivered": true,
    "replies": [false, false, true, false]
}

কীওয়ার্ড

কীওয়ার্ড - স্ট্রিং মান।

একটি একক এবং একাধিক কীওয়ার্ড মানের উদাহরণ:

{
    "name": "Alice",
    "friends": [
        "Bob",
        "Eva",
        "Jack"
    ]
}

ভৌগোলিক স্থানাঙ্ক

পূণ্য ভৌগোলিক স্থানাঙ্ক প্রতিনিধিত্ব করার জন্য ব্যবহৃত হয়।

একটি একক এবং একাধিক জিও মানের উদাহরণ:

{
    "location": {
        "longitude": 52.5200,
        "latitude": 13.4050
    },
    "cities": [
        {
            "longitude": 51.5072,
            "latitude": 0.1276
        },
        {
            "longitude": 40.7128,
            "latitude": 74.0060
        }
    ]
}

স্থানাঙ্ক হিসাবে একটি অবজেক্ট হিসেবে বর্ণনা করা উচিৎ: longitude - দীর্ঘতা প্রতিরূপ করে, latitude - অক্ষাংশ প্রতিরূপ করে।

পেয়ের্ড সহ পয়েন্ট তৈরি করা

REST API (architecture)

PUT /collections/{collection_name}/points

{
    "points": [
        {
            "id": 1,
            "vector": [0.05, 0.61, 0.76, 0.74],
            "payload": {"city": "Berlin", "price": 1.99}
        },
        {
            "id": 2,
            "vector": [0.19, 0.81, 0.75, 0.11],
            "payload": {"city": ["Berlin", "London"], "price": 1.99}
        },
        {
            "id": 3,
            "vector": [0.36, 0.55, 0.47, 0.94],
            "payload": {"city": ["Berlin", "Moscow"], "price": [1.99, 2.99]}
        }
    ]
}

পেয়ারলোড সেট করা

REST API (Schema):

POST /collections/{collection_name}/points/payload

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

পেয়ারলোড মুছে ফেলা

এই পদ্ধতি নির্দিষ্ট পয়েন্টগুলির থেকে নির্দিষ্ট পেয়ারলোড কীগুলি মুছে ফেলে।

REST API (Schema):

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

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

পেয়ারলোড পরিষ্কার করা

এই পদ্ধতি নির্দিষ্ট পয়েন্টগুলির থেকে সমস্ত পেয়ারলোড কীগুলি মুছে ফেলে।

REST API (Schema):

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

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

আপনি পয়েন্টগুলির আইডি প্রদান করার পরিবর্তে পরিবেশন করা বিনামূল্যে models.FilterSelector ব্যবহার করতে পারেন।

পেয়ারলোড ইনডেক্সিং

ফিল্টারযুক্ত অনুসন্ধান ক্রিয়াশীলভাবে অনুষ্ঠান করার জন্য, Qdrant আপনাকে ক্ষেত্রের নাম এবং ধরন নির্ধারণ করে পেয়ারলোড ক্ষেত্রের জন্য একটি ইনডেক্স তৈরি করতে দেয়।

ইনডেক্সযুক্ত ক্ষেত্ররাও ভেক্টর ইন্ডেক্সে প্রভাব ফেলে।

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

একাধিক ক্ষেত্র শামিল করা যুক্ত জিজ্ঞাসা যোগ্য পরিচালনাগুলিতে, Qdrant প্রথমে সবচেয়ে সীমাবদ্ধ ইনডেক্স ব্যবহার করার চেষ্টা করবে।

একটি ক্ষেত্রের জন্য ইনডেক্স তৈরি করতে, নিম্নলিখিতটি ব্যবহার করা যায়:

REST API (Schema)

PUT /collections/{collection_name}/index

{
    "field_name": "ইন্ডেক্স যোগ করতে চান ক্ষেত্রের নাম",
    "field_schema": "কীওয়ার্ড"
}

ইনডেক্সযুক্ত ক্ষেত্রগুলি collection info API এর সাথে পেয়ারলোড স্কিমায় প্রদর্শিত হয়।

উদাহরণ পেয়ারলোড স্কিমা:

{
    "payload_schema": {
        "property1": {
            "data_type": "কীওয়ার্ড"
        },
        "property2": {
            "data_type": "পূর্ণসংখ্যা"
        }
    }
}