توضّح هذه الصفحة من البرنامج التعليمي حول 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 في حزمة تطوير البرامج (SDK) وتبدأها.
تتضمّن ListingConnector
التي توفّرها حزمة SDK استراتيجية اجتياز
تستفيد من قوائم انتظار Cloud Search
لتتبُّع حالة العناصر في الفهرس. يتم تفويضها إلى GithubRepository،
التي ينفّذها موصّل النموذج، للوصول إلى المحتوى من GitHub.
التنقّل بين مستودعات GitHub
أثناء عمليات البحث الشامل، يتم استدعاء الطريقة getIds()
لدفع العناصر التي قد تحتاج إلى فهرسة في قائمة الانتظار.
يمكن للموصل فهرسة مستودعات أو مؤسسات متعددة. للحدّ من تأثير حدوث خطأ، يتم الانتقال إلى مستودع GitHub واحد في كل مرة. يتم عرض نقطة تحقّق مع نتائج عملية الانتقال التي تحتوي على قائمة بالمستودعات التي سيتم فهرستها في الطلبات اللاحقة إلى getIds(). في حال حدوث خطأ، تتم استئناف عملية الفهرسة في المستودع الحالي بدلاً من البدء من البداية.
يتعامل الإجراء collectRepositoryItems() مع عملية الانتقال إلى مستودع GitHub واحد. يعرض هذا الإجراء مجموعة من ApiOperations
تمثّل العناصر التي سيتم إدراجها في قائمة الانتظار. يتم إرسال العناصر كاسم مورد وقيمة تجزئة تمثّل الحالة الحالية للعنصر.
تُستخدَم قيمة التجزئة في عمليات الاجتياز اللاحقة لمستودعات GitHub. توفّر هذه القيمة عملية تحقّق بسيطة لتحديد ما إذا كان المحتوى قد تغيّر بدون الحاجة إلى تحميل محتوى إضافي. يضع الموصل جميع العناصر في قائمة الانتظار بدون تمييز. إذا كان العنصر جديدًا أو تغيّرت قيمة التجزئة، يصبح متاحًا للاستطلاع في قائمة الانتظار. وفي ما عدا ذلك، يُعدّ العنصر غير معدَّل.
معالجة قائمة الانتظار
بعد اكتمال عملية الانتقال الكامل، يبدأ الموصل في طلب البيانات من قائمة الانتظار بحثًا عن العناصر التي يجب فهرستها. يتم استدعاء الطريقة getDoc()
لكل عنصر يتم استخراجه من قائمة الانتظار. تقرأ الطريقة العنصر من GitHub وتحوّله إلى التمثيل المناسب للفهرسة.
بما أنّ الموصِّل يعمل على بيانات مباشرة قد يتم تغييرها في أي وقت، تتحقّق getDoc() أيضًا من أنّ العنصر في قائمة الانتظار لا يزال صالحًا وتحذف أي عناصر من الفهرس لم تعُد متوفرة.
بالنسبة إلى كل عنصر من عناصر GitHub التي يفهرسها الموصل، تعالج طريقة
indexItem() إنشاء تمثيل العنصر في Cloud Search. على سبيل المثال، لإنشاء تمثيل لعناصر المحتوى:
بعد ذلك، عليك نشر واجهة البحث.