يمكنك إعداد Google Cloud Search لعرض محتوى الويب للمستخدمين من خلال نشر المكوّن الإضافي لموسّع Google Cloud Search في Apache Nutch، وهو برنامج زحف ويب مفتوح المصدر.
عند بدء عملية الزحف إلى الويب، يزحف Apache Nutch إلى الويب ويستخدم المكوّن الإضافي للفهرسة لتحميل النُسخ الأصلية الثنائية (أو النصية) من محتوى المستند إلى واجهة برمجة التطبيقات لفهرسة Google Cloud Search. فهرسة واجهة برمجة التطبيقات للفهرسة هي واجهة برمجة تطبيقات لفهرسة المحتوى وعرض النتائج للمستخدمين.
اعتبارات مهمة
متطلبات النظام
متطلبات النظام | |
---|---|
نظام التشغيل | نظام التشغيل Linux فقط:
|
البرامج |
|
أنواع المستندات في Apache Tika | تنسيقات المستندات المتوافقة مع Apache Tika 1.18 |
نشر المكوّن الإضافي لفهرسة المحتوى
توضِّح الخطوات التالية كيفية تثبيت المكوّن الإضافي للفهرسة وضبط مكوّناته للزحف إلى عناوين URL المحدّدة وعرض النتائج على Cloud Search.
المتطلبات الأساسية
قبل نشر المكوّن الإضافي لموسّع Apache Nutch في Cloud Search، اجمع المعلومات المطلوبة لربط Google Cloud Search بمصدر البيانات:
- مفتاح Google Workspace الخاص (الذي يحتوي على رقم تعريف حساب الخدمة) للحصول على معلومات عن الحصول على مفتاح خاص، انتقِل إلى ضبط الوصول إلى Google 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
.استخرِج
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(الذي تم إنشاؤه في الخطوة 2) إلى مجلد. انسخ مجلدplugins/indexer-google-cloudsearch
إلى مجلد الإضافات الخاصة بتثبيت Apache Nutch (apache-nutch-1.15/plugins
).
الخطوة 2: ضبط المكوّن الإضافي لفهرسة المحتوى
لضبط المكوّن الإضافي لفهرس Apache Nutch، أنشئ ملفًا باسم plugin-configuration.properties
.
يجب أن يحدِّد ملف الإعدادات المَعلمات التالية التي تكون ضرورية للوصول إلى مصدر بيانات Google Cloud Search.
الإعدادات | المَعلمة |
معرّف مصدر البيانات | api.sourceId = 1234567890abcdef
مطلوبة. رقم تعريف مصدر Google Cloud Search الذي أعدّه مشرف Google Workspace لمكوّن الفهرسة الإضافي. |
حساب الخدمة | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
مطلوبة. ملف مفتاح حساب خدمة Google Cloud Search الذي أنشأه مشرف Google Workspace لإتاحة استخدام المكوّن الإضافي للفهرسة |
يعرض المثال التالي نموذجًا لملف الضبط يتضمّن المَعلمات المطلوبة.
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
يمكن أن يحتوي ملف الإعدادات أيضًا على مَعلمات أخرى تتحكّم في سلوك المكوّن الإضافي للفهرسة. يمكنك ضبط كيفية مشاركة الادراج في defaultAcl.*
وbatch.*
و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
اختيارية: قائمة مفصولة بفواصل بالعلامات التي ترتبط بخصائص في مخطّط مصدر البيانات المقابل للاطّلاع على مزيد من المعلومات عن كيفية إعداد Apache Nutch للعلامات الوصفية، انتقِل إلى تحليل العلامات الوصفية باستخدام Nutch.
يوضّح المثال التالي التعديل المطلوب على
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> على المَعلمات التالية:
الإعدادات المَعلمة مسار ملف إعدادات Google Cloud Search gcs.config.file = path
مطلوب. المسار الكامل (المطلق) لملف إعدادات Google Cloud Search
تنسيق التحميل gcs.uploadFormat = text
اختيارية: التنسيق الذي يُرسِل به المكوّن الإضافي للفهرسة محتوى المستند إلى واجهة برمجة التطبيقات الخاصة بفهرسة Google Cloud Search. القيم الصالحة هي:
raw
: تُرسِل المكوّنة الإضافية لفهرسة المحتوى محتوى المستند الأصلي غير المحوَّل.text
: يُرسِل المكوّن الإضافي لفهرسة المحتوى المحتوى النصي المستخرَج. تكون القيمة التلقائيةraw
.
الخطوة 4: ضبط الزحف إلى الويب
قبل بدء عملية الزحف إلى الويب، عليك ضبط عملية الزحف بحيث لا تتضمّن سوى المعلومات التي تريد مؤسستك إتاحتها في نتائج البحث. يوفّر هذا القسم نظرة عامة. لمزيد من المعلومات حول كيفية إعداد ميزة الزحف إلى الويب، انتقِل إلى الدليل التعليمي حول Nutch.
إعداد عناوين URL لبدء الاختبار
تتحكّم عناوين URL لنقطة البدء في المكان الذي يبدأ فيه الزاحف على الويب Apache Nutch في الزحف إلى المحتوى الخاص بك. يجب أن تتيح عناوين URL لنقطة البدء لزاحف الويب الوصول إلى كل المحتوى الذي تريد إدراجه في عملية زحف معيّنة من خلال اتّباع الروابط. يجب إدخال عناوين URL لصفحات البداية.
لإعداد عناوين URL لصفحات البداية:
غيِّر دليل العمل إلى دليل تثبيت nutch:
$ cd ~/nutch/apache-nutch-X.Y/
أنشئ دليلاً لعناوين URL:
$ mkdir urls
أنشئ ملفًا باسم
seed.txt
وأدرِج عناوين URL فيه مع إدراج عنوان URL واحد في كل سطر.
إعداد قواعد المتابعة وعدم المتابعة
تتحكّم قواعد عناوين URL التي يجب اتّباعها في عناوين URL التي يتم الزحف إليها وتضمينها في فهرس Google Cloud Search. يفحص الزاحف عناوين URL وفقًا لقواعد اتّباع عناوين URL. يتم الزحف إلى عناوين URL التي تتطابق مع هذه القواعد وفهرستها فقط.
تستبعد قواعد "عدم المتابعة" عناوين URL من الزحف إليها وتضمينها في فهرس Google Cloud Search. إذا كان عنوان URL يحتوي على نمط لا يتم الزحف إليه، لن يزحف إليه الزاحف على الويب.
لإعداد قواعد عناوين URL للمتابعة وعدم المتابعة:
غيِّر دليل العمل إلى دليل تثبيت nutch:
$ cd ~/nutch/apache-nutch-X.Y/
تعديل
conf/regex-urlfilter.txt
لتغيير قواعد المتابعة/عدم المتابعة: \$ nano conf/regex-urlfilter.txt
أدخِل تعبيرات منتظمة باستخدام البادئة "+" أو "-" لاتّباع / عدم اتّباع أنماط عناوين URL وإضافاتها، كما هو موضّح في المثالين التاليين. يُسمح باستخدام عبارات مفتوحة.
# 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 # (commented out due to the single url-prefix allowed above) #+.
عدِّل نص الزحف.
إذا لم تكن المَعلمة
gcs.uploadFormat
متوفّرة أو تم ضبطها على "خام"، يجب إضافة وسيطات "-addBinaryContent -base64
" لتمرير الأمرnutch index
. تُطلب من وحدة "فهرس Nutch" تضمين محتوى ثنائي في Base64 عند استدعاء المكوّن الإضافي للفهرسة. لا يحتوي النص البرمجي ./bin/crawl على هذه الوسيطات تلقائيًا.- افتح نص
crawl
البرمجي فيapache-nutch-1.15/bin
. أضِف خيارات
-addBinaryContent -base64
إلى النص البرمجي، كما هو موضّح في المثال التالي: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 الفردية.
يفترض المثال التالي أنّ المكوّنات المطلوبة موجودة في الدليل المحلي. شغِّل Nutch باستخدام الأمر التالي من دليل apache-nutch-1.15
:
$ bin/crawl -i -s urls/ crawl-test/ 5
تتوفّر سجلات الزحف في std output (الوحدة الطرفية) أو في logs/
directory. لتوجيه مخرجات التسجيل أو لتسجيل المزيد من التفاصيل، عدِّلملف conf/log4j.properties
.