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

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

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

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

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

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

نشر المكوّن الإضافي لبرنامج الفهرسة

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

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

قبل نشر المكوّن الإضافي لأداة الفهرسة في Cloud Search Apache Nutch، عليك جمع المعلومات المطلوبة لربط 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 Indexer، أنشئ ملفًا باسم 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

  1. افتح conf/nutch-site.xml وأضِف المَعلمات التالية:

    المكان المَعلمة
    يتضمن المكون الإضافي plugin.includes = text

    مطلوبة. قائمة بالمكوِّنات الإضافية التي يمكن استخدامها. يجب أن يتضمّن ذلك على الأقل ما يلي:

    • الأساسي-الفهرس
    • فهرسة-المزيد
    • 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>
    
  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. قم بتغيير دليل العمل إلى دليل تثبيت nuch:

      $ 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. قم بتغيير دليل العمل إلى دليل تثبيت nuch:

      $ 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 أو ضبطها على "raw"، عليك إضافة وسيطات "-addBinaryContent -base64" لإرسالها إلى الأمر nutch index. تطلب هذه الوسيطات من وحدة أداة Nutch Indexer تضمين محتوى ثنائي في 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 (طرفية) أو في دليل logs/. لتوجيه مخرجات التسجيل أو التسجيل المطوَّل بشكل أكبر، عدِّل conf/log4j.properties.