نشر المكوّن الإضافي لأداة 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 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

  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-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>
    
  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 أو ضبطها على "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

تتوفّر سجلات الزحف في الناتج القياسي (الوحدة الطرفية) أو في دليل logs/. لتوجيه مخرجات التسجيل أو لتسجيل أكثر تفصيلاً، عدِّل conf/log4j.properties.