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

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

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