يمكنك إعداد 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
مطلوب. قائمة المكوّنات الإضافية المطلوب استخدامها. ويجب أن يتضمّن ذلك على الأقل ما يلي:
- index-basic
- فهرسة-المزيد
- indexer-google-cloudsearch
conf/nutch-default.xml
قيمة تلقائية لهذه السمة، ولكن عليك أيضًا إضافة السمةindexer-google-cloudsearch
إليها يدويًا.أسماء العلامات الوصفية metatags.names = text
اختياريّ. قائمة مفصولة بفواصل للعلامات التي يتم تعيينها إلى الخصائص في مخطط مصدر البيانات المقابل. لمزيد من المعلومات حول طريقة إعداد Apache 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: ضبط زحف الويب
قبل بدء الزحف إلى الويب، يجب تهيئة الزحف بحيث لا يتضمن سوى المعلومات التي تريد مؤسستك إتاحتها في البحث فقط. نتائجك. يقدم هذا القسم نظرة عامة؛ لمزيد من المعلومات عن كيفية إعداد عملية زحف على الويب، انتقِل إلى برنامج Nint التعليمي
إعداد عناوين 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
الأمر. تطلب هذه الوسيطات من وحدة أداة فهرسة 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 (الأداة الطرفية) أو في دليل logs/
. إلى
توجيه مخرجات التسجيل أو لإجراء المزيد من التسجيل المطول، قم بتعديل
conf/log4j.properties