يمكنك إعداد 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 Indexer Plugin، أنشئ ملفًا باسم plugin-configuration.properties
.
يجب أن يحدّد ملف الإعداد المَعلمات التالية اللازمة للوصول إلى مصدر بيانات Google Cloud Search.
الإعداد | المَعلمة |
رقم تعريف مصدر البيانات | api.sourceId = 1234567890abcdef
مطلوب. رقم تعريف المصدر في Google Cloud Search الذي أعدّه مشرف Google Workspace لبرنامج Indexer الإضافي |
حساب الخدمة | 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
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xml
قيمة تلقائية لهذه السمة، ولكن يجب أيضًا إضافة السمةindexer-google-cloudsearch
إليها يدويًا.أسماء العلامات الوصفية metatags.names = text
اختياريّ. تمثّل هذه المَعلمة قائمة بالعلامات مفصولة بفواصل، وتربط هذه العلامات بالخصائص في مخطط مصدر البيانات المعنيّ. لمزيد من المعلومات حول كيفية إعداد Apache Nutch للعلامات الوصفية، يُرجى الانتقال إلى Nutch-parse metatags.
يوضّح المثال التالي التعديل المطلوب على
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
أو ضبطها على "raw"، عليك إضافة وسيطات "-addBinaryContent -base64
" لتمريرها إلى الأمرnutch index
. تطلب هذه الوسيطات من وحدة Nutch Indexer تضمين المحتوى الثنائي في 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
تتوفّر سجلات الزحف في الناتج القياسي (الوحدة الطرفية) أو في دليل logs/
. لتوجيه مخرجات التسجيل أو لتسجيل أكثر تفصيلاً، عدِّل conf/log4j.properties
.