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