Melakukan Deployment Plugin Pengindeks Apache Nutch

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

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

Pertimbangan penting

Sebelum men-deploy plugin pengindeks, perhatikan pertimbangan berikut.

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 ini.
  • 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 ini menjelaskan cara menginstal plugin pengindeks dan mengonfigurasi komponennya untuk meng-crawl URL dan menampilkan hasil ke Cloud Search.

Prasyarat

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

Langkah 1: Buat dan instal software plugin dan Apache Nutch

  1. Clone repositori plugin pengindeks dari GitHub.

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

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

    $ mvn package

    Untuk melewati pengujian saat membangun plugin, 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 ke folder. Salin folder plugins/indexer-google-cloudsearch ke folder Apache Nutch plugins (apache-nutch-1.15/plugins).

Langkah 2: Konfigurasi plugin pengindeks

Untuk mengonfigurasi plugin, buat file bernama plugin-configuration.properties. File konfigurasi harus menentukan parameter berikut untuk mengakses sumber data Cloud Search.

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

Contoh berikut menunjukkan contoh file konfigurasi:

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

File konfigurasi juga dapat berisi parameter yang mengontrol perilaku plugin, seperti cara plugin mengirim data ke Cloud Search API, dan cara plugin mengisi metadata dan data terstruktur. Untuk mengetahui deskripsi parameter ini, lihat 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. Daftar plugin yang digunakan. Hal ini setidaknya harus mencakup:

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml memberikan nilai default, tetapi Anda 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 lebih lanjut, lihat Tag meta Nutch-parse.

    Contoh berikut menunjukkan modifikasi yang diperlukan untuk 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 <writer> berisi parameter berikut:

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

    Wajib. Jalur lengkap (absolut) ke file konfigurasi Cloud Search.

    Format upload gcs.uploadFormat = text

    Opsional. Format yang digunakan plugin untuk mendorong konten dokumen ke Cloud Search API. Nilai yang valid adalah:

    • raw: mendorong konten asli yang belum dikonversi.
    • text: mendorong konten tekstual yang diekstrak. Defaultnya adalah raw.

Langkah 4: Konfigurasikan crawl web

Sebelum memulai crawl web, konfigurasikan crawl agar hanya menyertakan informasi yang ingin disediakan oleh organisasi Anda. Untuk mengetahui informasi selengkapnya, lihat tutorial Nutch.

  1. Siapkan URL mulai.

    URL mulai mengontrol lokasi web crawler saat mulai meng-crawl konten Anda. Crawler harus dapat menjangkau semua konten yang ingin Anda sertakan dengan mengikuti link.

    Untuk menyiapkan URL mulai:

    1. Ubah 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 satu URL per baris.
  2. Siapkan aturan ikuti dan jangan ikuti.

    Aturan ikuti URL mengontrol URL mana yang diindeks oleh crawler. Aturan jangan ikuti tidak meng-crawl URL.

    Untuk menyiapkan aturan ini:

    1. Ubah ke direktori penginstalan Nutch.
    2. Edit conf/regex-urlfilter.txt:
      $ nano conf/regex-urlfilter.txt
    3. Masukkan ekspresi reguler dengan awalan "+" atau "-":

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

    Jika parameter gcs.uploadFormat tidak ada atau ditetapkan ke "raw", Anda harus menambahkan argumen -addBinaryContent -base64 ke perintah nutch index. Argumen ini memberi tahu modul Pengindeks Nutch untuk memasukkan konten biner di Base64.

    1. Buka skrip crawl di apache-nutch-1.15/bin.
    2. Tambahkan opsi seperti yang ditunjukkan dalam contoh ini:

            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 menyiapkan plugin pengindeks, Anda dapat menjalankannya dalam mode lokal. Gunakan skrip dari ./bin untuk menjalankan tugas crawling.

Contoh berikut mengasumsikan komponen berada di direktori lokal. Jalankan Nutch dari direktori apache-nutch-1.15:

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

Log crawl tersedia di terminal atau direktori logs/. Untuk mengarahkan output logging, edit conf/log4j.properties.