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

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

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

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

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

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

متطلبات النظام
نظام التشغيل نظام التشغيل 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.

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

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

  • المفتاح الخاص في Google Workspace (الذي يحتوي على معرّف حساب الخدمة) للحصول على معلومات حول كيفية الحصول على مفتاح خاص، انتقِل إلى ضبط إذن الوصول إلى Cloud Search API.
  • معرّف مصدر بيانات Google Workspace للحصول على معلومات حول كيفية الحصول على رقم تعريف مصدر بيانات، انتقِل إلى إضافة مصدر بيانات إلى البحث.

الخطوة 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 إلى مجلد انسخ المجلد plugins/indexer-google-cloudsearch إلى مجلد Apache Nutch plugins (apache-nutch-1.15/plugins).

الخطوة 2: ضبط مكوّن الفهرسة الإضافي

لضبط الإضافة، أنشئ ملفًا باسم plugin-configuration.properties. يجب أن يحدّد ملف الإعداد المَعلمات التالية للوصول إلى مصدر بيانات Cloud Search.

الإعداد المَعلمة
رقم تعريف مصدر البيانات api.sourceId = 1234567890abcdef
مطلوب. معرّف مصدر Cloud Search الذي أعدّه مشرف Google Workspace لمكوّن الفهرسة الإضافي
حساب الخدمة api.serviceAccountPrivateKeyFile = ./PrivateKey.json
مطلوب. ملف مفتاح حساب خدمة Cloud Search الذي أنشأه مشرف Google Workspace لتوفير إمكانية الوصول إلى إضافة الفهرسة

يوضّح المثال التالي نموذجًا لملف إعداد:

# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json

يمكن أن يحتوي ملف الإعداد أيضًا على مَعلمات تتحكّم في سلوك المكوّن الإضافي، مثل كيفية إرسال المكوّن الإضافي للبيانات إلى 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

    اختياريّ. تمثّل هذه المَعلمة قائمة بالعلامات مفصولة بفواصل، وتربط هذه العلامات بالخصائص في مخطّط مصدر البيانات المقابل. لمزيد من المعلومات، يُرجى الاطّلاع على علامات 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>
    
  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> على المَعلمات التالية:

    الإعداد المَعلمة
    مسار ملف إعدادات Cloud Search gcs.config.file = path

    الحقل مطلوب. المسار الكامل (المطلق) إلى ملف إعدادات Cloud Search.

    تنسيق التحميل gcs.uploadFormat = text

    اختياريّ. تنسيق المكوّن الإضافي المستخدَم لنقل محتوى المستند إلى واجهة برمجة التطبيقات Cloud Search API القيم الصالحة هي:

    • raw: يرسل المحتوى الأصلي غير المحوّل.
    • text: يرسل المحتوى النصي المستخرَج. القيمة التلقائية هي raw.

الخطوة 4: ضبط الزحف إلى الويب

قبل بدء عملية الزحف على الويب، اضبطها لتضمين المعلومات التي تريد مؤسستك إتاحتها فقط. لمزيد من المعلومات، يمكنك الاطّلاع على البرنامج التعليمي حول Nutch.

  1. إعداد عناوين URL لبدء الزحف

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

    لإعداد عناوين URL لبدء الزحف، اتّبِع الخطوات التالية:

    1. انتقِل إلى دليل تثبيت Nutch:
      $ cd ~/nutch/apache-nutch-X.Y/
    2. أنشئ دليلاً لعناوين URL:
      $ mkdir urls
    3. أنشئ ملفًا باسم seed.txt وأدرِج عنوان URL واحدًا في كل سطر.
  2. إعداد قواعد المتابعة وعدم المتابعة

    تتحكّم قواعد عناوين URL في عناوين URL التي يفهرسها الزاحف. تستبعد قواعد عدم المتابعة عناوين URL من الزحف.

    لإعداد هذه القواعد، اتّبِع الخطوات التالية:

    1. انتقِل إلى دليل تثبيت Nutch.
    2. تعديل conf/regex-urlfilter.txt:
      $ nano conf/regex-urlfilter.txt
    3. أدخِل تعابير عادية مع البادئة "+" أو "-":

      # 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
      #+.
      
  3. عدِّل النص البرمجي للزحف.

    في حال عدم توفّر المَعلمة gcs.uploadFormat أو ضبطها على "raw"، يجب إضافة وسيطات -addBinaryContent -base64 إلى الأمر nutch index. تطلب هذه الوسيطات من وحدة Nutch Indexer تضمين المحتوى الثنائي في Base64.

    1. افتح النص البرمجي crawl في apache-nutch-1.15/bin.
    2. أضِف الخيارات كما هو موضّح في هذا المثال:

            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 من الدليل apache-nutch-1.15:

$ bin/crawl -i -s urls/ crawl-test/ 5

تتوفّر سجلّات الزحف في الجهاز أو في الدليل logs/. لتوجيه ناتج التسجيل مباشرةً، عدِّل conf/log4j.properties.