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

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

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

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

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

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

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

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

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

قبل نشر المكوّن الإضافي لبرنامج Cloud Search Apache Nutch Index، يُرجى جمع المعلومات المطلوبة لربط 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
#

يمكن أن يحتوي ملف التهيئة أيضًا على معلمات أخرى تتحكم في سلوك المكون الإضافي للمفهرس. يمكنك ضبط طريقة عرض المكوّن الإضافي إلى إرسال البيانات إلى Cloud Search API وdefaultAcl.* وbatch.*. يمكنك أيضًا ضبط كيفية تعبئة المكوّن الإضافي للمفهرس للبيانات الوصفية والبيانات المنظَّمة.

للحصول على أوصاف هذه المعلمات، انتقل إلى مَعلمات الموصِّل التي توفّرها Google

الخطوة 3: إعداد Apache Nutch

  1. افتح 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>
    
  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: ضبط زحف الويب

قبل بدء الزحف إلى الويب، يجب تهيئة الزحف بحيث لا يتضمن سوى المعلومات التي تريد مؤسستك إتاحتها في البحث فقط. نتائجك. يقدم هذا القسم نظرة عامة؛ لمزيد من المعلومات عن كيفية إعداد عملية زحف على الويب، انتقِل إلى برنامج Nint التعليمي

  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 غير متوفّرة أو تم ضبطها على Raw يجب إضافة "-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 (الأداة الطرفية) أو في دليل logs/. إلى توجيه مخرجات التسجيل أو لإجراء المزيد من التسجيل المطول، قم بتعديل conf/log4j.properties