تتيح حزمة تطوير الموصِّلات (SDK) وواجهة برمجة التطبيقات في Cloud Search إنشاء طوابير الفهرسة في Cloud Search. استخدِم هذه الطوابير من أجل:
- الاحتفاظ بحالة المستند (الحالة، ورموز التجزئة، وما إلى ذلك) للحفاظ على مزامنة الفهرس
- الاحتفاظ بقائمة بالعناصر المطلوب فهرستها، كما تم رصدها أثناء عملية الانتقال
- تحديد أولويات العناصر استنادًا إلى حالتها
- الاحتفاظ بمعلومات الحالة، مثل نقاط التحقّق ورموز التغيير
الطابور هو تصنيف يتم تعيينه لعنصر مفهرس (مثل "تلقائي").
الحالة والأولوية
تعتمد أولوية المستند على رمز
ItemStatus
الخاص به. في ما يلي الرموز المتاحة، بترتيب الأولوية (من الأعلى إلى الأدنى):
ERROR: واجه العنصر خطأ غير متزامن ويجب إعادة فهرسته.MODIFIED: تمّت فهرسة العنصر سابقًا ولكن تمّ تغييره في المستودع.NEW_ITEM: لم تتمّ فهرسة العنصر بعد.ACCEPTED: تمّت فهرسة العنصر سابقًا ولم يتمّ تغييره.
بالنسبة إلى العناصر التي لها الحالة نفسها، تكون الأولوية الأعلى للعناصر التي بقيت في الطابور لأطول فترة.
فهرسة عنصر جديد أو تمّ تغييره
يوضّح الشكل 1 خطوات فهرسة عنصر جديد أو تمّ تغييره باستخدام طابور الفهرسة. تعكس هذه الخطوات طلبات واجهة برمجة تطبيقات REST. للاطّلاع على طلبات حزمة تطوير البرامج (SDK) المكافئة، يُرجى مراجعة عمليات الطابور (حزمة تطوير الموصِّلات (SDK)).
- يستخدِم موصِّل المحتوى
items.pushلإضافة بيانات التعريف ورموز التجزئة إلى طابور.- إذا كان الموصِّل يتضمّن
typeأوcontentHash، تحدِّد Cloud Search الحالة. - تتلقّى العناصر غير المعروفة الحالة
NEW_ITEM. - تحتفظ العناصر الحالية التي تتطابق رموز التجزئة الخاصة بها بالحالة
ACCEPTED. - تصبح العناصر الحالية التي تختلف رموز التجزئة الخاصة بها
MODIFIED.
- إذا كان الموصِّل يتضمّن
- يستخدِم الموصِّل
items.pollلتحديد العناصر المطلوب فهرستها. تعرض Cloud Search العناصر بترتيب الأولوية. - يستردّ الموصِّل العناصر من المستودع وينشئ طلبات واجهة برمجة التطبيقات للفهرسة.
- يستخدِم الموصِّل
items.indexلفهرسة العناصر. ينتقل العنصر إلى الحالةACCEPTEDبعد معالجته بنجاح.
حذف عنصر
تستخدِم استراتيجيةالانتقال الكامل طابورَين لفهرسة العناصر ورصد عمليات الحذف. يوضّح الشكل 2 عملية الانتقال الثانية في هذه الاستراتيجية.
- أثناء عملية الانتقال الأولية، يضيف الموصِّل العناصر إلى "الطابور أ" على أنّها
NEW_ITEM. يحصل كل عنصر على التصنيف "أ". - يستطلِع الموصِّل الطابور أ ويفهرس العناصر.
- أثناء عملية الانتقال الكامل الثانية، يضيف الموصِّل العناصر إلى "الطابور ب".
- تحصل العناصر غير المعروفة على التصنيف "ب" والحالة
NEW_ITEM. - تغيِّر العناصر الحالية التي تتطابق رموز التجزئة الخاصة بها تصنيفها إلى "ب" وتبقى
ACCEPTED. - تغيِّر العناصر الحالية التي تختلف رموز التجزئة الخاصة بها تصنيفها إلى "ب" وتصبح
MODIFIED.
- تحصل العناصر غير المعروفة على التصنيف "ب" والحالة
- يستطلِع الموصِّل الطابور ب ويفهرس العناصر.
- أخيرًا، يستدعي الموصِّل
deleteQueueItemsفي الطابور أ. يؤدي ذلك إلى حذف جميع العناصر التي تمّت فهرستها سابقًا والتي لا يزال لديها التصنيف "أ". - في عمليات الانتقال اللاحقة، يتم تبديل أدوار الطابورَين.
عمليات الطابور (حزمة تطوير الموصِّلات (SDK))
استخدِم أداة إنشاء
pushItems
لإضافة العناصر. تسحب حزمة تطوير البرامج (SDK) تلقائيًا العناصر من الطابور بترتيب الأولوية باستخدام طريقة الفئة Repository
getDoc.
عمليات الطابور (واجهة برمجة تطبيقات REST)
- للإضافة: استخدِم
Items.push. - للاستطلاع: استخدِم
Items.poll.
يمكنك أيضًا استخدام
Items.index
لإضافة العناصر أثناء الفهرسة. تحصل هذه العناصر تلقائيًا على الحالة ACCEPTED.
Items.push
تضيف هذه الطريقة أرقام التعريف إلى الصفّ. يحدِّد
type
النتيجة. تؤدي إضافة رقم تعريف جديد إلى إضافة إدخال بالحالة NEW_ITEM.
يتم عرض الحمولة الاختيارية أثناء الاستطلاع.
تكون العناصر التي تمّ استطلاعها محجوزة ولا يمكن عرضها من خلال طلبات استطلاع أخرى. يؤدي استخدام Items.push مع ضبط type على NOT_MODIFIED أو REPOSITORY_ERROR أو REQUEUE إلى إلغاء حجز الإدخالات.
Items.push مع رموز التجزئة
حدِّد بيانات التعريف أو رموز تجزئة المحتوى في طلب الإضافة.
تقارِن Cloud Search هذه القيم بالقيم المخزّنة. إذا كانت غير متطابقة، يصبح الإدخال MODIFIED. تصبح أرقام التعريف غير المتطابقة التي لا تكون موجودة NEW_ITEM.
Items.poll
تستردّ هذه الطريقة الإدخالات ذات الأولوية العالية. يتم حجز كل إدخال يتم عرضه إلى أن تنتهي مهلته أو تتم إعادة فهرستها أو يتم إلغاء حجزها باستخدام Items.push.