نشر المكوّن الإضافي لأداة Apache Nutch Indexer

يمكنك إعداد Google Cloud Search لعرض محتوى الويب للمستخدمين من خلال نشر المكوّن الإضافي لموسّع Google Cloud Search في Apache Nutch، وهو برنامج زحف ويب مفتوح المصدر.

عند بدء عملية الزحف إلى الويب، يزحف Apache Nutch إلى الويب ويستخدم المكوّن الإضافي للفهرسة لتحميل النُسخ الأصلية الثنائية (أو النصية) من محتوى المستند إلى واجهة برمجة التطبيقات لفهرسة Google Cloud Search. فهرسة واجهة برمجة التطبيقات للفهرسة هي واجهة برمجة تطبيقات لفهرسة المحتوى وعرض النتائج للمستخدمين.

اعتبارات مهمة

متطلبات النظام

متطلبات النظام
نظام التشغيل نظام التشغيل Linux فقط:
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 بت)
البرامج
  • إصدار Apache Nutch 1.15 يتضمّن برنامج المكوّن الإضافي لفهرسة المحتوى هذا الإصدار من Nutch.
  • تثبيت Java JRE 1.8 على جهاز الكمبيوتر الذي سيتم تشغيل المكوّن الإضافي لفهرسة المحتوى عليه
أنواع المستندات في Apache Tika تنسيقات المستندات المتوافقة مع Apache Tika 1.18

نشر المكوّن الإضافي لفهرسة المحتوى

توضِّح الخطوات التالية كيفية تثبيت المكوّن الإضافي للفهرسة وضبط مكوّناته للزحف إلى عناوين URL المحدّدة وعرض النتائج على Cloud Search.

المتطلبات الأساسية

قبل نشر المكوّن الإضافي لموسّع Apache Nutch في Cloud Search، اجمع المعلومات المطلوبة لربط Google Cloud Search بمصدر البيانات:

الخطوة 1: إنشاء برنامج المكوّن الإضافي وتثبيته وApache Nutch

  1. استنسِخ مستودع المكوّن الإضافي لفهرسة المحتوى من GitHub.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. اطّلِع على الإصدار المطلوب من المكوّن الإضافي لفهرسة المحتوى:

    $ git checkout tags/v1-0.0.5
  3. أنشئ المكوّن الإضافي لفهرسة المحتوى.

    $ mvn package

    لتخطّي الاختبارات عند إنشاء المكوّن الإضافي لفهرسة المحتوى، استخدِم mvn package -DskipTests.

  4. نزِّل Apache Nutch 1.15 واتّبِع تعليمات تثبيت Apache Nutch.

  5. استخرِج 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

  1. افتح 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>
    
  2. افتح 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.

  1. إعداد عناوين URL لبدء الاختبار

    تتحكّم عناوين URL لنقطة البدء في المكان الذي يبدأ فيه الزاحف على الويب Apache Nutch في الزحف إلى المحتوى الخاص بك. يجب أن تتيح عناوين URL لنقطة البدء لزاحف الويب الوصول إلى كل المحتوى الذي تريد إدراجه في عملية زحف معيّنة من خلال اتّباع الروابط. يجب إدخال عناوين URL لصفحات البداية.

    لإعداد عناوين URL لصفحات البداية:

    1. غيِّر دليل العمل إلى دليل تثبيت nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. أنشئ دليلاً لعناوين URL:

      $ mkdir urls
    3. أنشئ ملفًا باسم seed.txt وأدرِج عناوين URL فيه مع إدراج عنوان URL واحد في كل سطر.

  2. إعداد قواعد المتابعة وعدم المتابعة

    تتحكّم قواعد عناوين URL التي يجب اتّباعها في عناوين URL التي يتم الزحف إليها وتضمينها في فهرس Google Cloud Search. يفحص الزاحف عناوين URL وفقًا لقواعد اتّباع عناوين URL. يتم الزحف إلى عناوين URL التي تتطابق مع هذه القواعد وفهرستها فقط.

    تستبعد قواعد "عدم المتابعة" عناوين URL من الزحف إليها وتضمينها في فهرس Google Cloud Search. إذا كان عنوان URL يحتوي على نمط لا يتم الزحف إليه، لن يزحف إليه الزاحف على الويب.

    لإعداد قواعد عناوين URL للمتابعة وعدم المتابعة:

    1. غيِّر دليل العمل إلى دليل تثبيت nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. تعديل conf/regex-urlfilter.txt لتغيير قواعد المتابعة/عدم المتابعة: \

      $ nano conf/regex-urlfilter.txt
    3. أدخِل تعبيرات منتظمة باستخدام البادئة "+" أو "-" لاتّباع / عدم اتّباع أنماط عناوين 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)
      #+.
      
  3. عدِّل نص الزحف.

    إذا لم تكن المَعلمة gcs.uploadFormat متوفّرة أو تم ضبطها على "خام"، يجب إضافة وسيطات "-addBinaryContent -base64" لتمرير الأمر nutch index. تُطلب من وحدة "فهرس Nutch" تضمين محتوى ثنائي في Base64 عند استدعاء المكوّن الإضافي للفهرسة. لا يحتوي النص البرمجي ‎ ./bin/crawl على هذه الوسيطات تلقائيًا.

    1. افتح نص crawl البرمجي في apache-nutch-1.15/bin.
    2. أضِف خيارات -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.