يمكنك إعداد Google Cloud Search لعرض محتوى الويب للمستخدمين من خلال نشر المكوّن الإضافي لأداة فهرسة Google Cloud Search في Apache Nutch، وهو زاحف ويب مفتوح المصدر.
عند بدء الزحف إلى الويب، يزحف Apache Nutch إلى الويب ويستخدم المكوّن الإضافي للمفهرس لتحميل الإصدارات الثنائية (أو النصية) الأصلية لمحتوى المستند إلى واجهة برمجة تطبيقات الفهرسة في Google Cloud Search. تفهرس واجهة Indexing API المحتوى وتعرض النتائج للمستخدمين.
اعتبارات مُهمّة
متطلبات النظام
متطلبات النظام | |
---|---|
نظام التشغيل | نظام التشغيل Linux فقط:
|
البرامج |
|
أنواع مستندات Apache Tika | تنسيقات المستندات المتوافقة مع Apache Tika 1.18 |
نشر المكوّن الإضافي للمفهرس
توضح الخطوات التالية كيفية تثبيت المكوّن الإضافي للفهرسة وإعداد مكوناته للزحف إلى عناوين URL المحدَّدة وعرض النتائج إلى Cloud Search.
المتطلّبات الأساسية
قبل نشر المكوّن الإضافي لبرنامج Cloud Search Apache Nutch Index، يُرجى جمع المعلومات المطلوبة لربط Google Cloud Search ومصدر البيانات:
- مفتاح Google Workspace الخاص (الذي يحتوي على رقم تعريف حساب الخدمة). لمزيد من المعلومات حول الحصول على مفتاح خاص، يُرجى الانتقال إلى ضبط الوصول إلى واجهة برمجة تطبيقات Google Cloud Search.
- رقم تعريف مصدر بيانات 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
#
يمكن أن يحتوي ملف التهيئة أيضًا على معلمات أخرى تتحكم في سلوك المكون الإضافي للمفهرس. يمكنك ضبط كيفية إرسال
المكوّن الإضافي البيانات إلى Cloud Search API وdefaultAcl.*
وbatch.*
. يمكنك أيضًا ضبط كيفية تعبئة المكوّن الإضافي للمفهرس للبيانات الوصفية والبيانات المنظَّمة.
للحصول على أوصاف لهذه المَعلمات، انتقِل إلى مَعلمات الموصِّل التي توفّرها Google.
الخطوة 3: إعداد Apache Nutch
افتح
conf/nutch-site.xml
وأضِف المَعلمات التالية:الإعدادات المَعلمة يتضمن المكوِّن الإضافي plugin.includes = text
مطلوبة. قائمة المكوّنات الإضافية المطلوب استخدامها. ويجب أن يتضمّن ذلك على الأقل ما يلي:
- فهرس-أساسي
- فهرسة-المزيد
- فهرس-google-cloudsearch
conf/nutch-default.xml
قيمة تلقائية لهذه السمة، ولكن عليك أيضًا إضافة السمةindexer-google-cloudsearch
إليها يدويًا.أسماء العلامات الوصفية metatags.names = text
اختياريّ. قائمة مفصولة بفواصل للعلامات المرتبطة بالخصائص في مخطط مصدر البيانات ذي الصلة. للاطّلاع على مزيد من المعلومات حول طريقة إعداد Apache Nutch للعلامات الوصفية، انتقِل إلى العلامات الوصفية 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> على المعلمات التالية:
الإعدادات المَعلمة المسار إلى ملف إعداد Google Cloud Search gcs.config.file = path
مطلوبة. المسار الكامل (المطلق) لملف إعداد Google Cloud Search.
تنسيق التحميل gcs.uploadFormat = text
اختياريّ. يشير ذلك المصطلح إلى التنسيق الذي ينقل به المكوّن الإضافي للفهرسة محتوى المستند إلى واجهة برمجة تطبيقات فهرسة Google Cloud Search. القيم الصالحة هي:
raw
: يطرح المكوِّن الإضافي للفهرسة محتوى المستند الأصلي الذي لم يتم تحويله.text
: يضع المكوّن الإضافي للفهرسة المحتوى النصي المستخرج. القيمة التلقائية هيraw
.
الخطوة 4: ضبط زحف الويب
قبل بدء الزحف إلى الويب، يجب تهيئة الزحف بحيث لا يتضمن سوى المعلومات التي تريد مؤسستك إتاحتها ضمن نتائج البحث. يوفّر هذا القسم نظرة عامة. لمزيد من المعلومات حول طريقة إعداد الزحف على الويب، انتقِل إلى البرنامج التعليمي المبسَّط.
إعداد عناوين 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
غير متوفّرة أو تم ضبطها على Raw، عليك إضافة وسيطات "-addBinaryContent -base64
" لتمريرها إلى الأمرnutch index
تطلب هذه الوسيطات من وحدة أداة الفهرسة تضمين محتوى ثنائي في 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 (الأداة الطرفية) أو في دليل logs/
. لتوجيه نتائج التسجيل أو إجراء المزيد من التسجيل المطوَّل، يُرجى تعديل
conf/log4j.properties
.