یک پلاگین Apache Nutch Indexer را نصب کنید

می توانید Google Cloud Search را برای ارائه محتوای وب به کاربران خود با استقرار افزونه نمایه ساز Google Cloud Search برای Apache Nutch ، یک خزنده وب منبع باز، راه اندازی کنید.

وقتی خزیدن وب را شروع می‌کنید، Apache Nutch وب را می‌خزد و از افزونه نمایه‌ساز برای آپلود نسخه‌های باینری (یا متنی) اصلی محتوای سند در API فهرست‌سازی Google Cloud Search استفاده می‌کند. API نمایه سازی محتوا را نمایه می کند و نتایج را در اختیار کاربران شما قرار می دهد.

ملاحظات مهم

سیستم مورد نیاز

سیستم مورد نیاز
سیستم عامل فقط لینوکس:
  • اوبونتو
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 بیت)
نرم افزار
  • آپاچی ناچ نسخه 1.15. نرم افزار افزونه indexer شامل این نسخه از Nutch می باشد.
  • جاوا JRE 1.8 بر روی رایانه نصب شده است که پلاگین نمایه ساز را اجرا می کند
انواع سند آپاچی تیکا Apache Tika 1.18 از فرمت های سند پشتیبانی می کند

پلاگین نمایه ساز را نصب کنید

مراحل زیر نحوه نصب افزونه نمایه ساز و پیکربندی اجزای آن را برای خزیدن URL های مشخص شده و بازگرداندن نتایج به جستجوی ابری توضیح می دهد.

پیش نیازها

قبل از استقرار افزونه نمایه ساز 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 install plugins ( 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-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> شامل پارامترهای زیر است:

    تنظیم پارامتر
    مسیر فایل پیکربندی Google Cloud Search gcs.config.file = path

    مورد نیاز. مسیر کامل (مطلق) فایل پیکربندی Google Cloud Search.

    فرمت آپلود gcs.uploadFormat = text

    اختیاری. قالبی که در آن افزونه نمایه ساز محتوای سند را به API نمایه ساز Google Cloud Search هدایت می کند. مقادیر معتبر عبارتند از:

    • raw : افزونه نمایه ساز محتوای سند اصلی و تبدیل نشده را فشار می دهد.
    • text : افزونه نمایه ساز محتوای متنی استخراج شده را فشار می دهد. مقدار پیش فرض raw است.

مرحله 4: خزیدن وب را پیکربندی کنید

قبل از شروع خزیدن وب، خزیدن را طوری پیکربندی کنید که فقط شامل اطلاعاتی باشد که سازمان شما می خواهد در نتایج جستجو در دسترس قرار دهد. این بخش یک نمای کلی ارائه می دهد. برای اطلاعات بیشتر در مورد نحوه راه اندازی خزیدن وب، به آموزش Nutch بروید.

  1. URL های شروع را تنظیم کنید.

    نشانی‌های اینترنتی استارت کنترل می‌کنند که خزنده وب Apache Nutch کجا شروع به خزیدن محتوای شما می‌کند. URL های شروع باید به خزنده وب اجازه دهند تا با دنبال کردن پیوندها به تمام محتوایی که می خواهید در یک خزیدن خاص بگنجانید دسترسی پیدا کند. URL های شروع مورد نیاز است.

    برای تنظیم URL های شروع:

    1. دایرکتوری کاری را به دایرکتوری نصب nutch تغییر دهید:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. یک دایرکتوری برای آدرس ها ایجاد کنید:

      $ mkdir urls
    3. فایلی به نام seed.txt ایجاد کنید و URL ها را در آن با 1 URL در هر خط فهرست کنید.

  2. قوانین پیگیری و رعایت نکردن را تنظیم کنید.

    قوانین URL را دنبال کنید، نشانی‌های وب خزیده شده و در فهرست جستجوی Google Cloud گنجانده می‌شود. خزنده وب URL ها را بر اساس قوانین پیروی از URL بررسی می کند. فقط URL هایی که با این قوانین مطابقت دارند خزیده و نمایه می شوند.

    قوانین پیروی نکردن نشانی‌های اینترنتی را از خزیدن و گنجاندن آن در فهرست جستجوی ابری Google محروم می‌کند. اگر یک 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

گزارش‌های Crawl در خروجی std (ترمینال) یا در دایرکتوری logs/ در دسترس هستند. برای هدایت خروجی ورود به سیستم یا برای ثبت دقیق تر، conf/log4j.properties را ویرایش کنید.