رابط توسعه نرمافزار (SDK) و رابط برنامهنویسی کاربردی جستجوی ابری (Cloud Search API) از ایجاد صفهای نمایهسازی جستجوی ابری (Cloud Search Indexing Queues) پشتیبانی میکنند. از این صفها برای موارد زیر استفاده کنید:
- وضعیت هر سند (وضعیت، هشها و غیره) را حفظ کنید تا فهرست شما همگام بماند.
- فهرستی از مواردی که باید ایندکس شوند، همانطور که در طول پیمایش کشف میشوند، نگهداری کنید.
- موارد را بر اساس وضعیتشان اولویتبندی کنید.
- اطلاعات وضعیت مانند نقاط بازرسی و توکنهای تغییر را حفظ کنید.
صف، برچسبی است که به یک آیتم اندیسگذاری شده (مثلاً «پیشفرض») اختصاص داده میشود.
وضعیت و اولویت
اولویت یک سند به کد ItemStatus آن بستگی دارد. کدهای ممکن، به ترتیب اولویت (بالاترین تا پایینترین)، عبارتند از:
-
ERROR: مورد با خطای ناهمزمان مواجه شد و نیاز به فهرستبندی مجدد دارد. -
MODIFIED: این مورد قبلاً فهرستبندی شده بود اما در مخزن تغییر کرده است. -
NEW_ITEM: این آیتم هنوز ایندکس نشده است. -
ACCEPTED: این مورد قبلاً فهرستبندی شده بود و تغییر نکرده است.
برای مواردی با وضعیت یکسان، اولویت بالاتر به مواردی تعلق میگیرد که مدت طولانیتری در صف بودهاند.
یک آیتم جدید یا تغییر یافته را فهرست بندی کنید
شکل ۱ مراحل ایندکس کردن یک آیتم جدید یا تغییر یافته با استفاده از صف ایندکس گذاری را نشان میدهد. این مراحل منعکس کننده فراخوانیهای REST API هستند؛ برای معادلهای SDK، به عملیات صف (Connector SDK) مراجعه کنید.

- رابط محتوا از
items.pushبرای ارسال فرادادهها و هشها به یک صف استفاده میکند.- اگر کانکتور شامل
typeارسال یاcontentHashباشد، Cloud Search وضعیت را تعیین میکند. - اقلام ناشناخته وضعیت
NEW_ITEMدریافت میکنند. - موارد موجود با هشهای منطبق، همچنان
ACCEPTEDمیشوند. - موارد موجود با هشهای متفاوت،
MODIFIEDتبدیل میشوند.
- اگر کانکتور شامل
- کانکتور از
items.pollبرای تعیین اینکه کدام آیتمها را باید ایندکس کند استفاده میکند. Cloud Search آیتمها را به ترتیب اولویت برمیگرداند. - کانکتور موارد را از مخزن بازیابی میکند و درخواستهای API شاخص را میسازد.
- کانکتور از
items.indexبرای فهرستبندی آیتمها استفاده میکند. یک آیتم پس از پردازش موفقیتآمیز وارد حالتACCEPTEDمیشود.
حذف یک مورد
استراتژی پیمایش کامل از دو صف برای فهرستبندی اقلام و تشخیص حذفها استفاده میکند. شکل ۲ پیمایش دوم را در این استراتژی نشان میدهد.

- در پیمایش اولیه، رابط، آیتمها را با عنوان
NEW_ITEMبه «صف A» ارسال میکند. هر آیتم برچسب «A» را دریافت میکند. - رابط، صف A را بررسی کرده و آیتمها را فهرستبندی میکند.
- در دومین پیمایش کامل، رابط، آیتمها را به «صف B» منتقل میکند.
- اقلام ناشناخته برچسب "B" و وضعیت
NEW_ITEMرا دریافت میکنند. - موارد موجود با هشهای منطبق، برچسب خود را به "B" تغییر میدهند و همچنان
ACCEPTEDباقی میمانند. - موارد موجود با هشهای متفاوت، برچسب خود را به "B" تغییر میدهند و به
MODIFIEDتبدیل میشوند.
- اقلام ناشناخته برچسب "B" و وضعیت
- رابط، صف B را بررسی کرده و آیتمها را فهرستبندی میکند.
- در نهایت، رابط، تابع
deleteQueueItemsرا در صف A فراخوانی میکند. این تابع، تمام آیتمهای قبلاً اندیسگذاری شدهای که هنوز برچسب "A" دارند را حذف میکند. - پیمایشهای بعدی نقشهای دو صف را عوض میکنند.
عملیات صف (SDK کانکتور)
از سازندهی pushItems برای ارسال آیتمها استفاده کنید. SDK به طور خودکار آیتمها را با استفاده از متد getDoc کلاس Repository و به ترتیب اولویت از صف دریافت میکند.
عملیات صف (REST API)
- برای ارسال: از
Items.pushاستفاده کنید. - برای نظرسنجی: از
Items.pollاستفاده کنید.
همچنین میتوانید Items.index برای ارسال آیتمها در طول ایندکسگذاری استفاده کنید. این آیتمها به طور خودکار وضعیت ACCEPTED را دریافت میکنند.
آیتمها.push
این متد، شناسهها را به صف اضافه میکند. type نتیجه را تعیین میکند. وارد کردن یک شناسه جدید، ورودی با وضعیت NEW_ITEM را اضافه میکند. مقدار اختیاری payload در طول نظرسنجی برمیگردد.
آیتمهای انتخابشده رزرو شدهاند و نمیتوانند توسط سایر فراخوانیهای نظرسنجی بازگردانده شوند. استفاده از Items.push با type تنظیمشده روی NOT_MODIFIED ، REPOSITORY_ERROR یا REQUEUE ورودیها را از حالت رزرو خارج میکند .
Items.push با هشها
در درخواست ارسال، هشهای فراداده یا محتوا را مشخص کنید. جستجوی ابری این موارد را با مقادیر ذخیره شده مقایسه میکند. در صورت عدم تطابق، ورودی به MODIFIED تبدیل میشود. شناسههای نامتناسبی که وجود ندارند به NEW_ITEM تبدیل میشوند.
آیتمها.نظرسنجی
این متد ورودیهای با اولویت بالا را بازیابی میکند. هر ورودی برگردانده شده تا زمانی که مهلت آن تمام شود، دوباره فهرستبندی شود یا با استفاده از Items.push رزرو نشده باشد، رزرو شده باقی میماند.