يمكنك إعداد Google Cloud Search لعرض محتوى الويب للمستخدمين من خلال نشر مكوّن إضافي لفهرسة Cloud Search خاص بـ Apache Nutch، وهو زاحف ويب مفتوح المصدر.
عند بدء الزحف إلى الويب، يزحف Apache Nutch إلى الويب ويستخدم مكوّن الفهرسة الإضافي لتحميل النسخ الثنائية الأصلية (أو النصية) من محتوى المستند إلى واجهة برمجة التطبيقات Google Cloud Search API. تفهرس واجهة برمجة التطبيقات Cloud Search API المحتوى وتعرض النتائج للمستخدمين.
اعتبارات مهمة
قبل نشر مكوّن الفهرسة الإضافي، يجب مراعاة ما يلي:
متطلبات النظام
| متطلبات النظام | |
|---|---|
| نظام التشغيل | نظام التشغيل Linux فقط:
|
| البرامج |
|
| أنواع المستندات في Apache Tika | تنسيقات المستندات المتوافقة مع Apache Tika 1.18 |
نشر المكوّن الإضافي للفهرسة
توضّح هذه الخطوات كيفية تثبيت مكوّن إضافي للفهرسة وضبط مكوّناته من أجل الزحف إلى عناوين URL وعرض النتائج في Cloud Search.
المتطلبات الأساسية
قبل نشر المكوّن الإضافي للفهرسة، اجمع المعلومات المطلوبة لربط Cloud Search بمصدر البيانات:
- المفتاح الخاص في Google Workspace (الذي يحتوي على معرّف حساب الخدمة) للحصول على معلومات حول كيفية الحصول على مفتاح خاص، انتقِل إلى ضبط إذن الوصول إلى Cloud Search API.
- معرّف مصدر بيانات Google Workspace للحصول على معلومات حول كيفية الحصول على رقم تعريف مصدر بيانات، انتقِل إلى إضافة مصدر بيانات إلى البحث.
الخطوة 1: إنشاء برنامج المكوّن الإضافي وتثبيته وApache Nutch
استنسِخ مستودع إضافة الفهرسة من GitHub.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
اطّلِع على إصدار إضافة الفهرسة الذي تريده:
$ git checkout tags/v1-0.0.5
إنشاء المكوّن الإضافي الخاص بالفهرسة
$ mvn package
لتخطّي الاختبارات عند إنشاء المكوّن الإضافي، استخدِم
mvn package -DskipTests.نزِّل Apache Nutch 1.15 واتّبِع تعليمات تثبيت Apache Nutch.
استخراج
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zipإلى مجلد انسخ المجلدplugins/indexer-google-cloudsearchإلى مجلد Apache Nutchplugins(apache-nutch-1.15/plugins).
الخطوة 2: ضبط مكوّن الفهرسة الإضافي
لضبط الإضافة، أنشئ ملفًا باسم plugin-configuration.properties.
يجب أن يحدّد ملف الإعداد المَعلمات التالية للوصول إلى مصدر بيانات Cloud Search.
| الإعداد | المَعلمة |
| رقم تعريف مصدر البيانات | api.sourceId = 1234567890abcdef
مطلوب. معرّف مصدر Cloud Search الذي أعدّه مشرف Google Workspace لمكوّن الفهرسة الإضافي |
| حساب الخدمة | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
مطلوب. ملف مفتاح حساب خدمة Cloud Search الذي أنشأه مشرف Google Workspace لتوفير إمكانية الوصول إلى إضافة الفهرسة |
يوضّح المثال التالي نموذجًا لملف إعداد:
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
يمكن أن يحتوي ملف الإعداد أيضًا على مَعلمات تتحكّم في سلوك المكوّن الإضافي، مثل كيفية إرسال المكوّن الإضافي للبيانات إلى Cloud Search API، وكيفية ملء البيانات الوصفية والبيانات المنظَّمة. للاطّلاع على أوصاف هذه المَعلمات، يُرجى الانتقال إلى مَعلمات الموصّل التي توفّرها Google.
الخطوة 3: ضبط Apache Nutch
افتح
conf/nutch-site.xmlوأضِف المَعلمات التالية:الإعداد المَعلمة يتضمّن المكوّن الإضافي ما يلي: plugin.includes = textالحقل مطلوب. قائمة بالمكوّنات الإضافية المطلوب استخدامها يجب أن يتضمّن ذلك ما يلي على الأقل:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xmlقيمة تلقائية، ولكن عليك إضافة السمةindexer-google-cloudsearchإليها يدويًا.أسماء العلامات الوصفية metatags.names = textاختياريّ. تمثّل هذه المَعلمة قائمة بالعلامات مفصولة بفواصل، وتربط هذه العلامات بالخصائص في مخطّط مصدر البيانات المقابل. لمزيد من المعلومات، يُرجى الاطّلاع على علامات Nutch-parse الوصفية.
يوضّح المثال التالي التعديل المطلوب على
nutch-site.xml:<property> <name>plugin.includes</name> <value>protocol-(http|httpclient)|urlfilter-regex|index-(basic|more|metadata)|query-(basic|site|url|lang)|indexer-google-cloudsearch|nutch-extensionpoints|parse-(text|html|msexcel|msword|mspowerpoint|pdf|metatags)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)|parse-(html|tika|metatags)|index-(basic|anchor|more|metadata)</value> </property>افتح
conf/index-writers.xmlوأضِف القسم التالي:<writer id="indexer_google_cloud_search_1" class="org.apache.nutch.indexwriter.gcs.GoogleCloudSearchIndexWriter"> <parameters> <param name="gcs.config.file" value="path/to/sdk-configuration.properties"/> </parameters> <mapping> <copy /> <rename /> <remove /> </mapping> </writer>يحتوي القسم
<writer>على المَعلمات التالية:الإعداد المَعلمة مسار ملف إعدادات Cloud Search gcs.config.file = pathالحقل مطلوب. المسار الكامل (المطلق) إلى ملف إعدادات Cloud Search.
تنسيق التحميل gcs.uploadFormat = textاختياريّ. تنسيق المكوّن الإضافي المستخدَم لنقل محتوى المستند إلى واجهة برمجة التطبيقات Cloud Search API القيم الصالحة هي:
-
raw: يرسل المحتوى الأصلي غير المحوّل. -
text: يرسل المحتوى النصي المستخرَج. القيمة التلقائية هيraw.
-
الخطوة 4: ضبط الزحف إلى الويب
قبل بدء عملية الزحف على الويب، اضبطها لتضمين المعلومات التي تريد مؤسستك إتاحتها فقط. لمزيد من المعلومات، يمكنك الاطّلاع على البرنامج التعليمي حول Nutch.
إعداد عناوين URL لبدء الزحف
تتحكّم عناوين URL الأولية في المكان الذي يبدأ فيه الزاحف على الويب بالزحف إلى المحتوى الخاص بك. يجب أن يتمكّن الزاحف من الوصول إلى كل المحتوى الذي تريد تضمينه من خلال اتّباع الروابط.
لإعداد عناوين URL لبدء الزحف، اتّبِع الخطوات التالية:
- انتقِل إلى دليل تثبيت Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
- أنشئ دليلاً لعناوين URL:
$ mkdir urls
- أنشئ ملفًا باسم
seed.txtوأدرِج عنوان URL واحدًا في كل سطر.
- انتقِل إلى دليل تثبيت Nutch:
إعداد قواعد المتابعة وعدم المتابعة
تتحكّم قواعد عناوين URL في عناوين URL التي يفهرسها الزاحف. تستبعد قواعد عدم المتابعة عناوين URL من الزحف.
لإعداد هذه القواعد، اتّبِع الخطوات التالية:
- انتقِل إلى دليل تثبيت Nutch.
- تعديل
conf/regex-urlfilter.txt:$ nano conf/regex-urlfilter.txt
أدخِل تعابير عادية مع البادئة "+" أو "-":
# skip file extensions -\.(gif|GIF|jpg|JPG|png|PNG|ico) # skip protocols (file: ftp: and mailto:) -^(file|ftp|mailto): # allow urls starting with https://support.google.com/gsa/ +^https://support.google.com/gsa/ # accept anything else #+.
عدِّل النص البرمجي للزحف.
في حال عدم توفّر المَعلمة
gcs.uploadFormatأو ضبطها على "raw"، يجب إضافة وسيطات-addBinaryContent -base64إلى الأمرnutch index. تطلب هذه الوسيطات من وحدة Nutch Indexer تضمين المحتوى الثنائي في Base64.- افتح النص البرمجي
crawlفيapache-nutch-1.15/bin. أضِف الخيارات كما هو موضّح في هذا المثال:
if $INDEXFLAG; then echo "Indexing $SEGMENT to index" __bin_nutch index $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb -addBinaryContent -base64 -linkdb "$CRAWL_PATH"/linkdb "$CRAWL_PATH"/segments/$SEGMENT echo "Cleaning up index if possible" __bin_nutch clean $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb else echo "Skipping indexing ..."
- افتح النص البرمجي
الخطوة 5: بدء الزحف إلى الويب وتحميل المحتوى
بعد إعداد المكوّن الإضافي للفهرسة، يمكنك تشغيله في الوضع المحلي. استخدِم نصوصًا برمجية
من ./bin لتنفيذ مهمة زحف.
يفترض المثال التالي أنّ المكوّنات موجودة في الدليل المحلي. شغِّل Nutch
من الدليل apache-nutch-1.15:
$ bin/crawl -i -s urls/ crawl-test/ 5
تتوفّر سجلّات الزحف في الجهاز أو في الدليل logs/. لتوجيه ناتج التسجيل مباشرةً، عدِّل conf/log4j.properties.