Melakukan Deployment Plugin Pengindeks Apache Nutch

Anda dapat menyiapkan Google Cloud Search untuk menayangkan konten web kepada pengguna dengan men-deploy plugin pengindeks Google Cloud Search untuk Apache Nutch, web crawler open source.

Saat Anda memulai web crawl, Apache Nutch akan meng-crawl web dan menggunakan plugin pengindeks untuk mengupload versi biner asli (atau teks) konten dokumen ke Google Indexing API pengindeksan Google. Indexing API mengindeks konten dan menayangkan hasilnya kepada pengguna.

Pertimbangan penting

Persyaratan sistem

Persyaratan sistem
Sistem operasi Khusus Linux:
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 bit)
Software
  • Apache Nutch versi 1.15. Software plugin pengindeks mencakup versi Nutch tersebut.
  • Java JRE 1.8 yang diinstal di komputer yang akan menjalankan plugin pengindeks
Jenis dokumen Apache Tika Format dokumen yang didukung Apache Tika 1.18

Men-deploy plugin pengindeks

Langkah-langkah berikut menjelaskan cara menginstal plugin pengindeks dan mengonfigurasi komponennya untuk meng-crawl URL yang ditentukan dan menampilkan hasilnya ke Cloud Search.

Prasyarat

Sebelum Anda men-deploy plugin pengindeks Cloud Search Apache Nutch, kumpulkan informasi yang diperlukan untuk menghubungkan Google Cloud Search dan sumber data:

Langkah 1: Buat dan instal software plugin dan Apache Nutch

  1. Lakukan clone repositori plugin pengindeks dari GitHub.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. Lihat versi plugin pengindeks yang diinginkan:

    $ git checkout tags/v1-0.0.5
  3. Membuat plugin pengindeks.

    $ mvn package

    Untuk melewati pengujian saat mem-build plugin pengindeks, gunakan mvn package -DskipTests.

  4. Download Apache Nutch 1.15 dan ikuti petunjuk penginstalan Apache Nutch.

  5. Ekstrak target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip (yang dibangun pada langkah 2) ke folder. Salin folder plugins/indexer-google-cloudsearch ke folder plugin penginstalan Apache Nutch (apache-nutch-1.15/plugins).

Langkah 2: Konfigurasikan plugin pengindeks

Untuk mengonfigurasi Plugin Pengindeks Apache Nutch, buat file bernama plugin-configuration.properties.

File konfigurasi tersebut harus menentukan parameter berikut, yang diperlukan untuk mengakses sumber data Google Cloud Search.

Setelan Parameter
ID sumber data api.sourceId = 1234567890abcdef
Wajib. ID sumber Google Cloud Search yang disiapkan admin Google Workspace untuk plugin pengindeks.
Akun layanan api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Wajib. File kunci akun layanan Google Cloud Search yang dibuat admin Google Workspace untuk aksesibilitas plugin pengindeks.

Contoh berikut menunjukkan contoh file konfigurasi dengan parameter yang diperlukan.

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

File konfigurasi juga dapat berisi parameter lain yang mengontrol perilaku plugin pengindeks. Anda dapat mengonfigurasi cara plugin mengirim data ke Cloud Search API, defaultAcl.* dan batch.*. Anda juga dapat mengonfigurasi cara plugin pengindeks mengisi metadata dan data terstruktur.

Untuk mengetahui deskripsi parameter ini, buka Parameter konektor yang disediakan Google.

Langkah 3: Konfigurasikan Apache Nutch

  1. Buka conf/nutch-site.xml dan tambahkan parameter berikut:

    Setelan Parameter
    Plugin mencakup plugin.includes = text

    Wajib diisi. Daftar plugin yang digunakan. Informasi ini harus mencakup setidaknya:

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml menyediakan nilai default untuk properti ini, tetapi Anda juga harus menambahkan indexer-google-cloudsearch ke dalamnya secara manual.
    Nama metatag metatags.names = text

    Opsional. Daftar tag yang dipisahkan dengan koma yang memetakan ke properti di skema sumber data yang sesuai. Untuk mempelajari cara menyiapkan Apache Nutch untuk metatag lebih lanjut, buka metatag parse Nutch.

    Contoh berikut menunjukkan modifikasi yang diperlukan pada 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. Buka conf/index-writers.xml dan tambahkan bagian berikut:

    <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>
    

    Bagian <penulis> berisi parameter berikut:

    Setelan Parameter
    Lokasi ke file konfigurasi Google Cloud Search gcs.config.file = path

    Wajib diisi. Lokasi lengkap (absolut) ke file konfigurasi Google Cloud Search.

    Format upload gcs.uploadFormat = text

    Opsional. Format saat plugin pengindeks mendorong konten dokumen ke API pengindeks Google Cloud Search. Nilai yang valid adalah:

    • raw: plugin pengindeks mendorong konten dokumen asli dan yang belum dikonversi.
    • text: plugin pengindeks mendorong konten tekstual yang diekstrak. Nilai defaultnya adalah raw.

Langkah 4: Konfigurasikan crawl web

Sebelum memulai web crawl, konfigurasikan crawl agar hanya menyertakan informasi yang ingin disediakan organisasi Anda dalam hasil penelusuran. Bagian ini memberikan ringkasan; untuk informasi selengkapnya tentang cara menyiapkan crawl web, buka tutorial Nutch.

  1. Siapkan URL mulai.

    URL mulai mengontrol lokasi web crawler Apache Nutch saat memulai meng-crawl konten Anda. URL mulai harus memungkinkan web crawler menjangkau semua konten yang ingin Anda sertakan dalam crawl tertentu dengan mengikuti link. URL Mulai wajib diisi

    Untuk menyiapkan URL mulai:

    1. Ubah direktori kerja ke direktori penginstalan nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Buat direktori untuk url:

      $ mkdir urls
    3. Buat file bernama seed.txt dan cantumkan URL di dalamnya dengan 1 URL per baris.

  2. Siapkan aturan ikuti dan jangan ikuti.

    Aturan ikuti URL mengontrol URL mana yang akan di-crawl dan disertakan di indeks Google Cloud Search. Web crawler memeriksa URL berdasarkan aturan URL berikut. Hanya URL yang cocok dengan aturan tersebut yang akan di-crawl dan diindeks.

    Aturan jangan ikuti tidak meng-crawl dan tidak menyertakan URL ke dalam indeks Google Cloud Search. Jika URL berisi pola jangan di-crawl, web crawler tidak akan meng-crawlnya.

    Untuk menyiapkan aturan ikuti URL dan aturan jangan ikuti URL:

    1. Ubah direktori kerja ke direktori penginstalan nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Edit conf/regex-urlfilter.txt untuk mengubah aturan ikuti/jangan ikuti: \

      $ nano conf/regex-urlfilter.txt
    3. Masukkan ekspresi reguler dengan awalan "+" atau "-" untuk mengikuti / tidak mengikuti pola dan ekstensi URL, seperti yang ditunjukkan pada contoh berikut. Ekspresi terbuka diizinkan.

      # 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. Edit skrip crawl.

    Jika parameter gcs.uploadFormat tidak ada atau ditetapkan ke "raw," Anda harus menambahkan "-addBinaryContent -base64" argumen untuk diteruskan ke perintah nutch index. Argumen ini memberi tahu modul Pengindeks Nutch untuk menyertakan konten biner di Base64 saat memanggil plugin pengindeks. Skrip ./bin/crawl tidak memiliki argumen ini secara default.

    1. Buka skrip crawl di apache-nutch-1.15/bin.
    2. Tambahkan opsi -addBinaryContent -base64 ke skrip, seperti pada contoh berikut:

            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 ..."
      

Langkah 5: Mulai crawl web dan upload konten

Setelah menginstal dan menyiapkan plugin pengindeks, Anda dapat menjalankannya sendiri dalam mode lokal. Gunakan skrip dari ./bin untuk menjalankan tugas crawling atau perintah Nutch individual.

Contoh berikut mengasumsikan bahwa komponen yang diperlukan berada di direktori lokal. Jalankan Nutch dengan perintah berikut dari direktori apache-nutch-1.15:

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

Log crawl tersedia di output std (terminal) atau di direktori logs/. Untuk mengarahkan output logging atau logging yang lebih panjang, edit conf/log4j.properties.