কানেক্টর SDK এবং ক্লাউড সার্চ API ক্লাউড সার্চ ইন্ডেক্সিং কিউ তৈরি করতে সহায়তা করে। এই কিউগুলি ব্যবহার করে:
- আপনার সূচককে সুসংগত রাখতে প্রতি-নথির অবস্থা (স্থিতি, হ্যাশ, ইত্যাদি) বজায় রাখুন।
- ট্র্যাভার্সালের সময় আবিষ্কৃত আইটেমগুলির একটি তালিকা বজায় রাখুন, যা সূচীবদ্ধ করা হবে।
- তাদের অবস্থার উপর ভিত্তি করে আইটেমগুলিকে অগ্রাধিকার দিন।
- চেকপয়েন্ট এবং পরিবর্তন টোকেনের মতো রাজ্যের তথ্য বজায় রাখুন।
একটি সারি হল একটি লেবেল যা একটি সূচীকৃত আইটেমের জন্য নির্ধারিত হয় (যেমন, "ডিফল্ট")।
অবস্থা এবং অগ্রাধিকার
একটি ডকুমেন্টের অগ্রাধিকার তার ItemStatus কোডের উপর নির্ভর করে। অগ্রাধিকারের ক্রম অনুসারে (সর্বোচ্চ থেকে সর্বনিম্ন) সম্ভাব্য কোডগুলি হল:
-
ERROR: আইটেমটি একটি অ্যাসিঙ্ক্রোনাস ত্রুটির সম্মুখীন হয়েছে এবং এটি পুনরায় সূচীকরণের প্রয়োজন। -
MODIFIED: আইটেমটি পূর্বে সূচীবদ্ধ ছিল কিন্তু সংগ্রহস্থলে পরিবর্তিত হয়েছে। -
NEW_ITEM: আইটেমটি এখনও সূচীবদ্ধ করা হয়নি। -
ACCEPTED: আইটেমটি পূর্বে সূচীবদ্ধ ছিল এবং পরিবর্তিত হয়নি।
একই অবস্থায় থাকা আইটেমগুলির ক্ষেত্রে, যেগুলি দীর্ঘ সময় ধরে সারিতে ছিল তাদের অগ্রাধিকার বেশি।
একটি নতুন বা পরিবর্তিত আইটেম সূচী করুন
চিত্র ১-এ একটি নতুন বা পরিবর্তিত আইটেমকে একটি ইনডেক্সিং কিউ ব্যবহার করে সূচী করার ধাপগুলি দেখানো হয়েছে। এই ধাপগুলি REST API কলগুলিকে প্রতিফলিত করে; SDK সমতুল্যের জন্য, কিউ অপারেশন (সংযোগকারী SDK) দেখুন।

- কন্টেন্ট সংযোগকারীটি
items.pushব্যবহার করে মেটাডেটা পুশ করে এবং হ্যাশগুলিকে একটি সারিতে রাখে।- যদি সংযোগকারীতে একটি পুশ
typeবাcontentHashথাকে, তাহলে ক্লাউড অনুসন্ধান স্থিতি নির্ধারণ করে। - অজানা আইটেমগুলি
NEW_ITEMস্থিতি পায়। - মিলে যাওয়া হ্যাশ সহ বিদ্যমান আইটেমগুলি
ACCEPTEDথাকবে। - বিভিন্ন হ্যাশ সহ বিদ্যমান আইটেমগুলি
MODIFIEDহয়ে যায়।
- যদি সংযোগকারীতে একটি পুশ
- কোন আইটেমগুলিকে সূচী করতে হবে তা নির্ধারণ করতে সংযোগকারী
items.pollব্যবহার করে। ক্লাউড অনুসন্ধান অগ্রাধিকার ক্রমে আইটেমগুলি ফেরত দেয়। - সংযোগকারীটি সংগ্রহস্থল থেকে আইটেমগুলি পুনরুদ্ধার করে এবং সূচক API অনুরোধ তৈরি করে।
- সংযোগকারীটি আইটেমগুলিকে সূচীবদ্ধ করার জন্য
items.indexব্যবহার করে। সফল প্রক্রিয়াকরণের পরে একটি আইটেমACCEPTEDঅবস্থায় প্রবেশ করে।
একটি আইটেম মুছুন
পূর্ণ-ট্রাভার্সাল কৌশলটি আইটেমগুলিকে সূচীবদ্ধ করতে এবং মুছে ফেলা সনাক্ত করতে দুটি সারি ব্যবহার করে। চিত্র 2 এই কৌশলের দ্বিতীয় ট্র্যাভার্সালটি দেখায়।

- প্রাথমিক ট্র্যাভার্সালে, সংযোগকারীটি
NEW_ITEMহিসাবে "queue A" তে আইটেমগুলিকে ঠেলে দেয়। প্রতিটি আইটেম "A" লেবেল পায়। - সংযোগকারী পোল কিউ A এবং আইটেমগুলিকে সূচী করে।
- দ্বিতীয় পূর্ণ ট্রাভার্সালে, সংযোগকারীটি আইটেমগুলিকে "কিউ B" তে ঠেলে দেয়।
- অজানা আইটেমগুলি "B" লেবেল এবং স্থিতি
NEW_ITEMপায়। - বিদ্যমান আইটেমগুলির সাথে মিলে যাওয়া হ্যাশগুলি তাদের লেবেল "B" তে পরিবর্তন করে এবং
ACCEPTEDথাকে। - বিভিন্ন হ্যাশ সহ বিদ্যমান আইটেমগুলি তাদের লেবেল "B" তে পরিবর্তন করে এবং
MODIFIEDহয়।
- অজানা আইটেমগুলি "B" লেবেল এবং স্থিতি
- সংযোগকারী পোল কিউ B এবং আইটেমগুলিকে সূচীবদ্ধ করে।
- অবশেষে, সংযোগকারীটি কিউ A-তে
deleteQueueItemsকল করে। এটি পূর্বে সূচীকৃত সমস্ত আইটেম মুছে ফেলে যেগুলিতে এখনও "A" লেবেল রয়েছে। - পরবর্তী ট্র্যাভার্সালগুলি দুটি সারির ভূমিকা অদলবদল করে।
সারিবদ্ধ ক্রিয়াকলাপ (সংযোগকারী SDK)
আইটেম পুশ করার জন্য pushItems বিল্ডার ব্যবহার করুন। SDK স্বয়ংক্রিয়ভাবে Repository ক্লাসের getDoc পদ্ধতি ব্যবহার করে অগ্রাধিকার ক্রমে কিউ থেকে আইটেমগুলি টেনে আনে।
সারিবদ্ধ ক্রিয়াকলাপ (REST API)
- ধাক্কা দিতে:
Items.pushব্যবহার করুন। - পোল করতে:
Items.pollব্যবহার করুন।
আপনি ইনডেক্সিংয়ের সময় আইটেমগুলি পুশ করার জন্য Items.index ব্যবহার করতে পারেন। এই আইটেমগুলি স্বয়ংক্রিয়ভাবে ACCEPTED স্ট্যাটাস পায়।
আইটেম.পুশ
এই পদ্ধতিতে কিউতে আইডি যোগ করা হয়। type ফলাফল নির্ধারণ করে। একটি নতুন আইডি পুশ করলে NEW_ITEM স্ট্যাটাস সহ একটি এন্ট্রি যোগ হয়। পোলিং এর সময় ঐচ্ছিক পেলোড ফিরে আসে।
পোল করা আইটেমগুলি সংরক্ষিত থাকে এবং অন্যান্য পোল কল দ্বারা ফেরত পাঠানো যায় না। NOT_MODIFIED , REPOSITORY_ERROR , অথবা REQUEUE type সেট করে Items.push ব্যবহার করলে এন্ট্রিগুলি অসংরক্ষিত হয়ে যায় ।
হ্যাশ সহ Items.push
পুশ রিকোয়েস্টে মেটাডেটা বা কন্টেন্ট হ্যাশ উল্লেখ করুন। ক্লাউড সার্চ এগুলোকে সঞ্চিত মানের সাথে তুলনা করে। যদি এগুলো অমিল হয়, তাহলে এন্ট্রিটি MODIFIED হয়ে যায়। যে আইডিগুলো বিদ্যমান নেই সেগুলো NEW_ITEM হয়ে যায়।
আইটেম.পোল
এই পদ্ধতিটি উচ্চ-অগ্রাধিকার এন্ট্রিগুলি পুনরুদ্ধার করে। প্রতিটি ফেরত এন্ট্রি সময় শেষ না হওয়া পর্যন্ত সংরক্ষিত থাকে, পুনঃসূচীকরণ করা হয়, অথবা Items.push ব্যবহার করে অসংরক্ষিত থাকে।