توليف الإعدادات

يحتوي حزمة تطوير البرامج (SDK) الخاصة بخدمة Google Cloud Search على عدة معلَمات إعداد مقدَّمة من Google تستخدمها جميع الموصّلات. يمكن أن تساعد معرفة كيفية ضبط هذه الإعدادات في تبسيط عملية فهرسة البيانات بشكل كبير. يسرد هذا الدليل عدة مشاكل يمكن أن تظهر أثناء الفهرسة والإعدادات المستخدَمة لحلّها.

إنتاجية الفهرسة منخفضة بالنسبة إلى FullTraversalConnector

يسرد الجدول التالي إعدادات الضبط لتحسين معدّل نقل البيانات في FullTraversalConnector:

الإعداد الوصف تلقائي تغيير الإعدادات الذي يجب تجربته
traverse.partitionSize عدد ApiOperation() المطلوب معالجته على دفعات قبل جلب APIOperation() إضافي تنتظر حزمة تطوير البرامج (SDK) حتى تتم معالجة القسم الحالي قبل جلب عناصر إضافية. يعتمد هذا الإعداد على مقدار الذاكرة المتاحة. تتطلّب أحجام الأقسام الأصغر، مثل 50 أو 100، ذاكرة أقل ولكنها تتطلّب انتظارًا أطول من جانب حزمة SDK. 50 إذا كانت لديك مساحة كبيرة من الذاكرة المتاحة، جرِّب زيادة قيمة partitionSize إلى 1000 أو أكثر.
batch.batchSize عدد الطلبات المجمّعة معًا في نهاية عملية التقسيم، تنتظر حزمة تطوير البرامج (SDK) إلى أن تتم معالجة جميع الطلبات المجمّعة من القسم. تتطلّب الدفعات الأكبر مدة انتظار أطول. 10 جرِّب تقليل حجم الدفعة.
batch.maxActiveBatches عدد الدفعات المسموح بتنفيذها في الوقت نفسه 20 إذا خفّضت batchSize، عليك زيادة maxActiveBatches وفقًا لهذه الصيغة:

maxActiveBatches = (partitionSize / batchSize) + 50. على سبيل المثال، إذا كان partititionSize هو 1000 وbatchSize هو 5، يجب أن يكون maxActiveBatches هو 250. الـ 50 الإضافية هي احتياطية لطلبات إعادة المحاولة. تتيح هذه الزيادة للموصّل تجميع كل الطلبات بدون حظر.
traverse.threadPoolSize عدد سلاسل المحادثات التي تنشئها أداة الربط للسماح بالمعالجة المتوازية يجلب مكرّر واحد العمليات (عادةً كائنات RepositoryDoc) بشكل تسلسلي، ولكن تتم معالجة طلبات البيانات من واجهة برمجة التطبيقات بالتوازي باستخدام عدد threadPoolSize من سلاسل المحادثات. يعالج كل مؤشر ترابط عنصرًا واحدًا في كل مرة. سيؤدي الإعداد التلقائي البالغ 50 إلى معالجة 50 عنصرًا فقط في الوقت نفسه كحد أقصى، ويستغرق الأمر 4 ثوانٍ تقريبًا لمعالجة عنصر فردي (بما في ذلك طلب الفهرسة). 50 جرِّب زيادة threadPoolSize بمقدار مضاعف للرقم 10.

أخيرًا، ننصحك باستخدام طريقة setRequestMode() لتغيير وضع طلب واجهة برمجة التطبيقات (إما ASYNCHRONOUS أو SYNCHRONOUS).

للحصول على معلومات إضافية حول مَعلمات ملف الإعداد، يُرجى الرجوع إلى مَعلمات الإعداد التي توفّرها Google.

إنتاجية الفهرسة منخفضة بالنسبة إلى ListTraversalConnector

تلقائيًا، يستخدم الموصّل الذي ينفّذ ListTraversalConnnector أداة فهرسة واحدة لفهرسة عناصرك. لزيادة معدّل نقل البيانات أثناء الفهرسة، يمكنك إنشاء عدة برامج زحف، كل منها يتضمّن إعداداته الخاصة التي تركّز على حالات عناصر معيّنة (NEW_ITEM وMODIFIED وما إلى ذلك). يسرد الجدول التالي إعدادات الضبط لتحسين معدّل نقل البيانات:

.
الإعدادالوصفتلقائيتغيير الإعدادات الذي يجب تجربته
repository.traversers = t1, t2, t3, ...تنشئ هذه السمة واحدًا أو أكثر من أدوات التجوال الفردية، حيث يمثّل t1, t2, t3, ... الاسم الفريد لكل أداة. يحتوي كل متجوّل مسمّى على مجموعة الإعدادات الخاصة به والتي يتم تحديدها باستخدام الاسم الفريد للمتجوّل، مثل traversers.t1.hostload وtraversers.t2.hostload.متجوّل واحداستخدِم هذا الخيار لإضافة أدوات اجتياز إضافية
traversers.t1.hostload = nتحدّد هذه السمة عدد سلاسل المحادثات، n، التي سيتم استخدامها لفهرسة العناصر في الوقت نفسه.5جرِّب ضبط n استنادًا إلى مقدار الحمل الذي تريد فرضه على المستودع. ابدأ بقيم 10 أو أعلى.
schedule.pollQueueIntervalSecs = sتحدّد هذه السمة عدد الثواني، s، التي يجب الانتظار خلالها قبل إعادة الاستطلاع . يواصل موصّل المحتوى طلب البيانات من العناصر طالما أنّ واجهة برمجة التطبيقات تعرض عناصر في ردّ الطلب. عندما تكون استجابة الاستطلاع فارغة، ينتظر الموصل لمدة s ثانية قبل إعادة المحاولة. يتم استخدام هذا الإعداد من خلال ListingConnector فقط10جرِّب خفضها إلى 1.
traverser.t1.pollRequest.statuses = status1, status2, …تحدّد هذه السمة حالات العناصر التي ستتم فهرستها، وهي status1 وstatus2 و. على سبيل المثال، يؤدي ضبط status1 على NEW_ITEM وstatus2 على MODIFIED إلى توجيه الزاحف t1 لفهرسة العناصر التي تتضمّن هذه الحالات فقط.عملية بحث واحدة تتحقّق من جميع الحالاتجرِّب أن تطلب أدوات الزحف المختلفة حالات مختلفة.

للحصول على معلومات إضافية حول مَعلمات ملف الإعداد، يُرجى الرجوع إلى مَعلمات الإعداد التي توفّرها Google.

انتهاء مهلة حزمة تطوير البرامج (SDK) أو انقطاعها أثناء تحميل ملفات كبيرة

إذا واجهت مهلة أو انقطاعات في حزمة تطوير البرامج (SDK) أثناء تحميل ملفات كبيرة، حدِّد مهلة أطول باستخدام traverser.timeout=s (حيث s = عدد الثواني). تحدّد هذه القيمة المدة التي يجب أن تستغرقها سلاسل العمل لمعالجة عنصر. المهلة التلقائية في حزمة SDK هي 60 ثانية لسلاسل محادثات المتصفّح. بالإضافة إلى ذلك، إذا واجهت مهلة زمنية لطلبات فردية من واجهة برمجة التطبيقات، استخدِم الطرق التالية لزيادة قيم المهلة الزمنية للطلبات:

مَعلمة انتهاء مهلة الطلب الوصف تلقائي
indexingService.connectTimeoutSeconds مهلة الاتصال لطلبات واجهة برمجة التطبيقات للفهرسة ‫120 ثانية
indexingService.readTimeoutSeconds مهلة القراءة لطلبات البيانات من واجهة برمجة التطبيقات للفهرسة ‫120 ثانية