পয়েন্ট

পয়েন্ট হল Qdrant দ্বারা নিয়ন্ত্রিত মৌলিক প্রকৃতি। একটি পয়েন্ট হ'ল একটি ভেক্টর এবং একটি ঐচ্ছিক পেয়্লোড দ্বারা গঠিত রেকর্ড।

ভেক্টর সমীপতা ভিত্তিতে সংগ্রহে সংযুক্ত পয়েন্ট খোঁজা যাবে। প্রক্রিয়ার বিস্তারিত বিবরণ সন্ধান এবং ফিল্টারে অধ্যায়ে সরবরাহ করা হয়েছে।

এই অধ্যায়টি ভেক্টর তৈরি এবং ব্যবস্থাপনা করা হ'ল কিভাবে পরিচিত করে।

পয়েন্ট উপর যে কোনও সম্পাদনা অসমভাবী এবং দুই ধাপে ভাগ করা হয়। প্রথম পর্যায়ে, অপারেশনটি একটি রাইট-এহেড লগে লিখা হবে।

এই মুহূর্তে, যদি মেশিন বিদ্যুত হারিয়ে যায়, সেবাটি তথ্য হারায় না।

টিপ: পয়েন্টগুলি Qdrant একটি প্রতিক। আপনি এগুলির মাধ্যমে একটি এমানে ডেটা সারণি একটি রূপে চিন্তা করতে পারেন MySQL টেবিলের।

ফলাফল অপেক্ষা করছি

যদি API কে &wait=false প্যারামিটার দিয়ে ডাকা হয় না বা স্পষ্টভাবে নির্দিষ্ট না করা হয়, তবে ক্লায়েন্টটি ডেটা গ্রহণের জন্য একটি নিশ্চিতকরণ বার্তা পাবে:

{
    "result": {
        "operation_id": 123,
        "status": "acknowledged"
    },
    "status": "ok",
    "time": 0.000206061
}

এই প্রতিক্রিয়া অবিশ্বাসী মুখোপযুক্ত ডেটা অনুদানের পুন:স্থায়ী অবস্থার নিশ্চয়া দেয় না। এটি সময় লাগতে পারে উপলব্ধিপূর্ণ সংগ্রহ আপডেট প্রক্রিয়ার সময় নিয়ে। বাস্তবিকতঃ, এই অনুরোধটি পরিণামিত হতে পারে। যদি একাধিক ভেক্টর ঢুকিয়ে দেবার জন্য আপনার অ্যাপ্লিকেশন লজিক, তবে আমরা পূর্নতায় পাইপলাইন অপারেশনগুলি ব্যবহার করা সুপারিশ করি।

আপনার অ্যাপ্লিকেশনের লজিক সরাসরি খোঁজার জন্য অবশ্যই API রেসপন্সের পরিপ্রেক্ষিতা প্রয়োজন হলে, ব্যবহার করুন ?wait=true পতাকা। এই ক্ষেত্রে, API শুধুমাত্র অপারেশন সম্পন্ন হওয়ার পরেই ফলাফল ফিরিয়ে আসবে:

{
    "result": {
        "operation_id": 0,
        "status": "completed"
    },
    "status": "ok",
    "time": 0.000206061
}

পয়েন্ট আইডি

Qdrant পয়েন্টের শনাক্তকরণের সর্বোপরিক সমর্থন অনুগ্রহ করে 64-বিট স্বাক্ষরিত ইউনসাইন্ড ইন্টিজার এবং UUIDs সমর্থন করে।

UUID স্ট্রিং প্রতিনিয়ত প্রতিনিয়তিভাবে প্রতিনিয়ত প্রতিনিয়ত প্রতিনিয়ত প্রতিনিয়ত প্রদর্শন করে:

  • সাধারণ প্রতিনিয়তি: 936DA01F9ABD4d9d80C702AF85C822A8
  • হাইফেনেটেড প্রতিনিয়তি: 550e8400-e29b-41d4-a716-446655440000
  • URN: urn:uuid:F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4

এটা অর্থ যে, প্রতিটি অনুরোধে, UUID স্ট্রিংগুলি সংখ্যার আদি ইউস্তি। উদাহরণ:

PUT /collections/{collection_name}/points

{
    "points": [
        {
            "id": "5c56c793-69f3-4fbf-87e6-c4bf54c28c26",
            "payload": {"color": "red"},
            "vector": [0.9, 0.1, 0.1]
        }
    ]
}

এবং

PUT /collections/{collection_name}/points

{
    "points": [
        {
            "id": 1,
            "payload": {"color": "red"},
            "vector": [0.9, 0.1, 0.1]
        }
    ]
}

উভয়ই বৈধ।

পয়েন্ট সংযুক্তি করা

পারফরম্যান্স অপটিমাইজ করার জন্য, Qdrant ব্যাচ পোইন্টের ডেটা সমর্থন করে। এর মাধ্যমে আপনি একটি API কলে সেবায় একাধিক ডেটা পয়েন্ট লোড করতে পারেন। ব্যাচ লোডিং নেটওয়ার্ক সংযোগের ওভারহেড সামান্য করে তুলতে পারে।

Qdrant API দুটি ব্যাচ সৃষ্টি পদ্ধতি সমর্থন করে - রেকর্ড-উদ্দিষ্ট এবং কলাম-উদ্দিষ্ট। অভ্যন্তরীণভাবে, এই বিকল্পগুলি অনন্যভাবে অনুভব করা সুবিধার জন্য।

REST API ব্যবহার করে ডেটা পয়েন্ট তৈরি করা:

PUT /collections/{collection_name}/points

{
    "batch": {
        "ids": [1, 2, 3],
        "payloads": [
            {"color": "red"},
            {"color": "green"},
            {"color": "blue"}
        ],
        "vectors": [
            [0.9, 0.1, 0.1],
            [0.1, 0.9, 0.1],
            [0.1, 0.1, 0.9]
        ]
    }
}

বা রেকর্ড-সম্পৃক্ত পদ্ধতি ব্যবহার করুন:

PUT /collections/{collection_name}/points

{
    "points": [
        {
            "id": 1,
            "payload": {"color": "red"},
            "vector": [0.9, 0.1, 0.1]
        },
        {
            "id": 2,
            "payload": {"color": "green"},
            "vector": [0.1, 0.9, 0.1]
        },
        {
            "id": 3,
            "payload": {"color": "blue"},
            "vector": [0.1, 0.1, 0.9]
        }
    ]
}

Qdrant এর সমস্ত API, ডেটা পয়েন্ট লোডিং সহ, idempotent হয়। এটা এটির মাধ্যমে পরত্যক্ষভাবে একই পদ্ধতিতে নির্বাচন করা সেবার মাধ্যমে একইভাবে হয়।

এই পরিস্থিতিতে, মানে হয় যখন সমান id সহ ডেটা পয়েন্ট পুনরায় আপলোড করা হয়, তখনই বিদ্যমান ডেটা পয়েন্ট ওভাররাইট হবে।

Idempotent মানে হয

ভেক্টরগুলি আপডেট করুন

সংস্করণ v1.2.0 থেকে উপলব্ধ

এই পদ্ধতিটি নির্দিষ্ট পয়েন্টগুলির প্রদত্ত ভেক্টরগুলি আপডেট করে। অনির্দিষ্ট ভেক্টরগুলি অপরিবর্তিত রাখা হবে। সমস্ত প্রদত্ত পয়েন্টগুলি অবশ্যই বিদ্যমান থাকতে হবে।

REST API (স্কিমা):

PUT /collections/{সংগ্রহের_নাম}/points/vectors

{
    "points": [
        {
            "id": 1,
            "vector": {
                "image": [0.1, 0.2, 0.3, 0.4]
            }
        },
        {
            "id": 2,
            "vector": {
                "text": [0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2]
            }
        }
    ]
}

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

ভেক্টরগুলি মোছুন

সংস্করণ v1.2.0 থেকে উপলব্ধ

এই পদ্ধতি শুধুমাত্র নির্দিষ্ট পয়েন্টগুলি থেকে নির্দিষ্ট ভেক্টরগুলি মুছে ফেলে। অন্যান্য ভেক্টরগুলি অপরিবর্তিত থাকবে। পয়েন্টগুলি মোছা হবে না।

REST API (স্কিমা):

POST /collections/{সংগ্রহের_নাম}/points/vectors/delete

{
    "points": [0, 3, 100],
    "vectors": ["text", "image"]
}

পেয়োড সেট করুন

পয়েন্টগুলিতে প্রদত্ত পেয়োড মান সেট করুন।

REST API (স্কিমা):

POST /collections/{সংগ্রহের_নাম}/points/payload

{
    "payload": {
        "property1": "স্ট্রিং",
        "property2": "স্ট্রিং"
    },
    "points": [
        0, 3, 100
    ]
}

আপনাকে পয়েন্টের আইডি জানতে দরকার পড়ে না। এটির অপর উপায় হল ফিল্টার ব্যবহার করা।

POST /collections/{সংগ্রহের_নাম}/points/payload

{
    "payload": {
        "property1": "স্ট্রিং",
        "property2": "স্ট্রিং"
    },
    "filter": {
        "must": [
            {
                "key": "color",
                "match": {
                    "value": "রেড"
                }
            }
        ]
    }
}

পেয়োড ওভাররাইট করুন

প্রদত্ত পেয়োড দিয়ে বিদ্যমান পেয়োড সম্পূর্ণভাবে প্রতিস্থাপন করুন।

REST API (স্কিমা):

PUT /collections/{সংগ্রহের_নাম}/points/payload

{
    "payload": {
        "property1": "স্ট্রিং",
        "property2": "স্ট্রিং"
    },
    "points": [
        0, 3, 100
    ]
}

সেট পেয়োড এর মতো, আপনাকে বিবরণী করতে দরকার পড়ে পয়েন্টের আইডি জানতে না। এটির অপর উপায় ফিল্টার ব্যবহার করা।

পেয়োড কী মুছুন

REST API (স্কিমা):

POST /collections/{সংগ্রহের_নাম}/points/payload/delete

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

একইভাবে, পয়েন্টগুলি থেকে পেয়োড কী মুছতে ফিল্টার ব্যবহার করা যেতে পারে।

POST /collections/{সংগ্রহের_নাম}/points/payload/delete

{
    "keys": ["color", "price"],
    "filter": {
        "must": [
            {
                "key": "color",
                "match": {
                    "value": "রেড"
                }
            }
        ]
    }
}

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

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

REST API (স্কিমা):

POST /collections/{সংগ্রহের_নাম}/points/payload/clear

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

পয়েন্ট মুছে ফেলুন

REST API (Schema):

POST /collections/{collection_name}/points/delete

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

একটি অন্যান্য উপায় হ'ল ফিল্টার ব্যবহার করে মুছতে চাহিদা পয়েন্টগুলি নির্দিষ্ট করা:

POST /collections/{collection_name}/points/delete

{
    "filter": {
        "must": [
            {
                "key": "color",
                "match": {
                    "value": "red"
                }
            }
        ]
    }
}

এই উদাহরণে, এই কালেকশন থেকে { "color": "red" } সহ সমস্ত পয়েন্টগুলি মুছে ফেলে।

পয়েন্ট পেতে

তাদের আইডিতে পয়েন্ট পেতে পদ্ধতি:

REST API (Schema):

POST /collections/{collection_name}/points

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

এই পদ্ধতিতে অতিরিক্ত প্যারামিটার হ'ল with_vectors এবং with_payload। এই প্যারামিটারগুলি ব্যবহার করে আপনি যে অংশগুলি নিয়ে দরকার সে অংশগুলি নির্বাচন করতে পারেন। এই পূর্বস্থাপনা করা ডেটা সরবরাহ তৈরি করতে সাহায্য করে।

এটি API ব্যবহার করে একটি নির্দিষ্ট পয়েন্ট পুনরায়:

REST API (Schema):

GET /collections/{collection_name}/points/{point_id}

দেখুন

কখনও কখনও প্যারামিটার জানা ছাড়া সমস্ত সংরক্ষিত পয়েন্ট পেতে অথবা এমন পয়েন্টগুলির মধ্যে উল্লেখিত সাপেক্ষে যাত্রা করতে প্রয়োজন হতে পারে।

REST API (Schema):

POST /collections/{collection_name}/points/scroll

{
    "filter": {
        "must": [
            {
                "key": "color",
                "match": {
                    "value": "red"
                }
            }
        ]
    },
    "limit": 1,
    "with_payload": true,
    "with_vector": false
}

color=red মিলছে সমস্ত পয়েন্ট ফিরিয়ে দেয়:

{
    "result": {
        "next_page_offset": 1,
        "points": [
            {
                "id": 0,
                "payload": {
                    "color": "red"
                }
            }
        ]
    },
    "status": "ok",
    "time": 0.0001
}

Scroll API প্রজ্ঞাপন প্রয়োজনবান মাধ্যমে ফিল্টার অনুযায়ী সমস্ত পয়েন্ট ফিরিয়ে দেয়।

সমস্ত ফলাফল আইডি দ্বারা সারিবদ্ধ। পরবর্তী পৃষ্ঠা প্রশ্ন করতে, আপনাকে offset ক্ষেত্রে সর্বাধিক অনুমোদিত আইডি নির্ধারণ করতে হবে। সুবিধার জন্য, এই আইডি আরও ফলাফল প্রদান করা হয় এই সিদ্ধান্তে, যদি next_page_offset ক্ষেত্রের মান null হয়, তাহলে এর মানে সর্বশেষ পৃষ্ঠায় পৌছে গেছে।

পয়েন্ট গণনা

v0.8.4 থেকে পূর্বে সহজাতি

কিছুসময়, সংগ্রহের শর্তাবলী সাধন করার পরিস্থিতি বিনাID পূর্ববার বিশদ জানার শর্তে কতগুলি পয়েন্ট মিলছে মাত্র প্রচুর ধরণের বিভিন্ন পরিস্থিতিতে আর্গুমেন্ট উপযোগী:

REST API (Schema):

POST /collections/{collection_name}/points/count

{
    "filter": {
        "must": [
            {
                "key": "color",
                "match": {
                    "value": "red"
                }
            }
        ]
    },
    "exact": true
}

প্রদত্ত ফিল্টার শর্তাবলী মিলছে পয়েন্টের গণনা ফিরিয়ে দেয়:

{
    "count": 3811
}

ব্যাচ আপডেট

v1.5.0 এর পরই উপলব্ধ

আপনি একাধিক পয়েন্টে ব্যাচ অপারেশন করতে পারেন। এটা পয়েন্ট, ভেক্টর এবং পেলোড পরিমার্জন, আপডেট এবং মুছে ফেলা সম্পর্কিত।

ব্যাচ আপডেট অনুরোধটি একটি ক্রমিকভাবে অনুষ্ঠিত অনেক অপারেশন থেকে গঠিত। যে অপারেশনগুলি ব্যাচ করা যাবে, তারা হল:

  • পয়েন্ট বা আপডেট করা পয