توضّح هذه الصفحة من البرنامج التعليمي حول Cloud Search كيفية إعداد مصدر بيانات وموصّل محتوى لفهرسة البيانات. للبدء من بداية هذا الدليل التوجيهي، يُرجى الرجوع إلى الدليل التوجيهي لبدء استخدام Cloud Search.
إنشاء الموصّل
غيِّر دليل العمل إلى دليل cloud-search-samples/end-to-end/connector
ونفِّذ الأمر التالي:
mvn package -DskipTests
ينزّل الأمر التبعيات المطلوبة لإنشاء موصّل المحتوى ويجمّع الرمز.
إنشاء بيانات اعتماد حساب الخدمة
يتطلّب الموصل بيانات اعتماد حساب الخدمة لاستدعاء واجهات برمجة التطبيقات في Cloud Search. لإنشاء بيانات الاعتماد، اتّبِع الخطوات التالية:
- ارجع إلى وحدة تحكّم Google Cloud.
- في شريط التنقل الأيمن، انقر على بيانات الاعتماد. تظهر صفحة "بيانات الاعتماد".
- انقر على القائمة المنسدلة + إنشاء بيانات اعتماد واختَر حساب الخدمة. تظهر صفحة "إنشاء حساب خدمة".
- في حقل اسم حساب الخدمة، أدخِل "برنامج تعليمي".
- دوِّن قيمة "رقم تعريف حساب الخدمة" (بعد "اسم حساب الخدمة" مباشرةً). سيتم استخدام هذه القيمة لاحقًا.
- انقر على إنشاء. يظهر مربّع الحوار "أذونات حساب الخدمة (اختيارية)".
- انقر على متابعة. يظهر مربّع الحوار "منح المستخدمين إذن الوصول إلى حساب الخدمة هذا (اختياري)".
- انقر على تم. ستظهر شاشة "بيانات الاعتماد".
- ضمن "حسابات الخدمة"، انقر على البريد الإلكتروني لحساب الخدمة. ستظهر صفحة "تفاصيل حساب الخدمة".
- ضمن "المفاتيح"، انقر على القائمة المنسدلة إضافة مفتاح واختَر إنشاء مفتاح جديد. يظهر مربّع الحوار "إنشاء مفتاح خاص".
- انقر على إنشاء.
- (اختياري) إذا ظهر مربّع الحوار "هل تريد السماح بتنزيل الملفات على console.cloud.google.com؟"، انقر على السماح.
- يتم حفظ ملف مفتاح خاص على جهاز الكمبيوتر. دوِّن موقع الملف الذي تم تنزيله. يُستخدَم هذا الملف لإعداد موصّل المحتوى حتى يتمكّن من إثبات هويته عند استدعاء واجهات Google Cloud Search API.
بدء دعم الجهات الخارجية
يجب إعداد دعم الجهات الخارجية في Google Cloud Search قبل استدعاء أي واجهات برمجة تطبيقات أخرى في Cloud Search.
لبدء دعم الجهات الخارجية، اتّبِع الخطوات التالية:
- أنشئ بيانات اعتماد لتطبيق الويب في مشروع منصة Cloud Search. راجِع مقالة إنشاء بيانات اعتماد. يجب توفير معرّف العميل وسر العميل.
- الحصول على رمز دخول باستخدام
مساحة بروتوكول OAuth 2.0:
- انقر على إعدادات OAuth 2.0 (رمز الإعدادات) وضَع علامة في المربّع بجانب استخدام بيانات اعتماد OAuth الخاصة بك.
- أدخِل معرّف العميل وسر العميل.
- في حقل النطاقات، أدخِل
https://www.googleapis.com/auth/cloud_search.settingsوانقر على تفويض واجهات برمجة التطبيقات. - انقر على Exchange authorization code for tokens (تبديل رمز التفويض بالرموز المميّزة).
نفِّذ أمر curl التالي، مع استبدال
[YOUR_ACCESS_TOKEN]برمزك المميز:curl --request POST \ 'https://cloudsearch.googleapis.com/v1:initializeCustomer' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{}' \ --compressedإذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على
operation. إذا تعذّر ذلك، يُرجى التواصل مع فريق دعم Cloud Search.استخدِم
operations.getللتحقّق من عملية الإعداد:curl 'https://cloudsearch.googleapis.com/v1/operations/<var>operation_name</var>?key=[YOUR_API_KEY]' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --compressedتكتمل عملية الإعداد عندما يصبح جهاز
donetrue.
إنشاء مصدر البيانات
بعد ذلك، أنشئ مصدر بيانات في "وحدة تحكّم المشرف". يوفّر مصدر البيانات مساحة اسم لفهرسة المحتوى باستخدام الموصّل.
- افتح وحدة تحكّم المشرف في Google.
- انقر على رمز التطبيقات. ستظهر صفحة "إدارة التطبيقات".
- انقر على Google Workspace. ستظهر صفحة "إدارة تطبيقات Google Workspace".
- انتقِل إلى أسفل الصفحة وانقر على Cloud Search. ستظهر صفحة "إعدادات Google Workspace".
- انقر على مصادر بيانات الجهات الخارجية. تظهر صفحة "مصادر البيانات".
- انقر على الدائرة الصفراء التي تحمل علامة +. سيظهر مربّع الحوار "إضافة مصدر بيانات جديد".
- في حقل الاسم المعروض، اكتب "برنامج تعليمي".
- في حقل عناوين البريد الإلكتروني لحساب الخدمة، أدخِل عنوان البريد الإلكتروني لحساب الخدمة الذي أنشأته في القسم السابق. إذا كنت لا تعرف عنوان البريد الإلكتروني لحساب الخدمة، ابحث عن القيمة في صفحة حسابات الخدمة.
- انقر على إضافة. يظهر مربّع الحوار "تم إنشاء مصدر البيانات بنجاح".
- انقر على *حسنًا. دوِّن رقم تعريف المصدر لمصدر البيانات الذي تم إنشاؤه حديثًا. يُستخدَم معرّف المصدر لضبط موصّل المحتوى.
إنشاء رمز مميّز للوصول الشخصي إلى GitHub API
يتطلّب الموصل إذن وصول مصادَق عليه إلى GitHub API للحصول على حصة كافية. لتبسيط العملية، يستفيد الموصل من رموز الدخول الشخصية بدلاً من بروتوكول OAuth. تسمح الرموز المميزة الشخصية بالمصادقة كمستخدم لديه مجموعة محدودة من الأذونات المشابهة لبروتوكول OAuth.
- سجِّل الدخول إلى GitHub.
- في أعلى يسار الصفحة، انقر على صورة ملفك الشخصي. ستظهر قائمة منسدلة.
- انقر على الإعدادات.
- انقر على إعدادات المطوّر.
- انقر على رموز الدخول الشخصية.
- انقر على إنشاء رمز دخول شخصي.
- في حقل الملاحظة، أدخِل "برنامج تعليمي حول Cloud Search".
- تحقَّق من نطاق public_repo.
- انقر على إنشاء رمز مميز.
- دوِّن الرمز المميّز الذي تم إنشاؤه. يستخدم الموصل هذا الرمز لاستدعاء واجهات برمجة التطبيقات GitHub، كما يوفّر حصة واجهة برمجة التطبيقات لإجراء الفهرسة.
ضبط الموصّل
بعد إنشاء بيانات الاعتماد ومصدر البيانات، عدِّل إعدادات أداة الربط لتضمين القيم التالية:
- من سطر الأوامر، غيِّر الدليل إلى
cloud-search-samples/end-to-end/connector/. - افتح ملف
sample-config.propertiesباستخدام محرِّر نصوص. - اضبط المَعلمة
api.serviceAccountPrivateKeyFileعلى مسار الملف الخاص ببيانات اعتماد الخدمة التي نزّلتها سابقًا. - اضبط المَعلمة
api.sourceIdعلى معرّف مصدر البيانات الذي أنشأته سابقًا. - اضبط المَعلمة
github.userعلى اسم المستخدم الخاص بك على GitHub. - اضبط المَعلمة
github.tokenعلى رمز الدخول الذي أنشأته سابقًا. - احفظ الملف.
تعديل المخطط
يفهرس الموصل المحتوى المنظَّم وغير المنظَّم. قبل فهرسة البيانات، يجب تعديل المخطط الخاص بمصدر البيانات. نفِّذ الأمر التالي لتعديل المخطط:
mvn exec:java -Dexec.mainClass=com.google.cloudsearch.tutorial.SchemaTool \
-Dexec.args="-Dconfig=sample-config.properties"
تشغيل الموصّل
لتشغيل الموصّل وبدء الفهرسة، نفِّذ الأمر التالي:
mvn exec:java -Dexec.mainClass=com.google.cloudsearch.tutorial.GithubConnector \
-Dexec.args="-Dconfig=sample-config.properties"
يتمثل الإعداد التلقائي للموصل في فهرسة مستودع واحد
في مؤسسة googleworkspace. تستغرق فهرسة المستودع دقيقة واحدة تقريبًا.
بعد الفهرسة الأولية، يواصل الموصل إجراء عمليات بحث عن التغييرات في المستودع التي يجب أن تظهر في فهرس Cloud Search.
مراجعة الرمز البرمجي
تتناول الأقسام المتبقية كيفية إنشاء الموصل.
بدء التطبيق
نقطة الدخول إلى الموصل هي الفئة GithubConnector. تنشئ الطريقة
main مثيلاً من IndexingApplication
في حزمة تطوير البرامج وتبدأها.
توفّر ListingConnector
حزمة SDK استراتيجية اجتياز
تستفيد من قوائم انتظار Cloud Search
لتتبُّع حالة العناصر في الفهرس. يتم تفويضها إلى GithubRepository،
التي ينفّذها الموصل النموذجي، للوصول إلى المحتوى من GitHub.
التنقّل بين مستودعات GitHub
أثناء عمليات المسح الكاملة، يتم استدعاء الطريقة getIds() لدفع العناصر التي قد تحتاج إلى فهرسة في قائمة الانتظار.
يمكن للموصل فهرسة مستودعات أو مؤسسات متعددة. للحد من تأثير حدوث خطأ، يتم الانتقال إلى مستودع GitHub واحد في كل مرة. يتم عرض نقطة تحقّق مع نتائج عملية الانتقال التي تحتوي على قائمة المستودعات التي سيتم فهرستها في الطلبات اللاحقة إلى getIds(). في حال حدوث خطأ، تتم استئناف عملية الفهرسة في المستودع الحالي بدلاً من البدء من البداية.
تتعامل الطريقة collectRepositoryItems() مع التنقّل في مستودع GitHub واحد. تعرض هذه الطريقة مجموعة من ApiOperations تمثّل العناصر التي سيتم إدراجها في قائمة الانتظار. يتم إرسال العناصر كاسم مصدر وقيمة تجزئة تمثّل الحالة الحالية للعنصر.
يتم استخدام قيمة التجزئة في عمليات اجتياز لاحقة لمستودعات GitHub. توفّر هذه القيمة عملية تحقّق بسيطة لتحديد ما إذا كان المحتوى قد تغيّر بدون الحاجة إلى تحميل محتوى إضافي. يضع الموصل جميع العناصر في قائمة الانتظار بدون تمييز. إذا كان العنصر جديدًا أو تغيّرت قيمة التجزئة، يصبح متاحًا للاستطلاع في قائمة الانتظار. وفي ما عدا ذلك، يُعدّ العنصر غير معدَّل.
معالجة الصفّ
بعد اكتمال عملية المسح الكامل، يبدأ الموصل في طلب البيانات من قائمة الانتظار بحثًا عن العناصر التي يجب فهرستها. يتم استدعاء الطريقة getDoc() لكل عنصر يتم استخراجه من قائمة الانتظار. تقرأ الطريقة العنصر من GitHub وتحوّله إلى التمثيل المناسب للفهرسة.
بما أنّ الموصِّل يعمل على بيانات مباشرة قد يتم تغييرها في أي وقت، يتحقّق getDoc() أيضًا من أنّ العنصر في قائمة الانتظار لا يزال صالحًا ويحذف أي عناصر من الفهرس لم تعُد متوفّرة.
بالنسبة إلى كل عنصر من عناصر GitHub التي يفهرسها الموصل، تعالج طريقة
indexItem() عملية إنشاء تمثيل العنصر في
Cloud Search. على سبيل المثال، لإنشاء تمثيل لعناصر المحتوى:
بعد ذلك، عليك نشر واجهة البحث.