Anda dapat menyiapkan Google Cloud Search untuk menayangkan konten web kepada pengguna dengan men-deploy plugin pengindeks Google Cloud Search untuk Apache Nutch, yaitu crawler web open source.
Saat Anda memulai crawl web, Apache Nutch akan meng-crawl web dan menggunakan plugin pengindeks untuk mengupload versi biner (atau teks) asli dari konten dokumen ke API pengindeksan Google Cloud Search. Indexing API mengindeks konten dan menayangkan hasilnya kepada pengguna Anda.
Pertimbangan penting
Persyaratan sistem
Persyaratan sistem | |
---|---|
Sistem operasi | Khusus Linux:
|
Software |
|
Jenis dokumen Apache Tika | Format dokumen yang didukung Apache Tika 1.18 |
Men-deploy plugin pengindeks
Langkah-langkah berikut menjelaskan cara menginstal plugin pengindeksan dan mengonfigurasi komponennya untuk meng-crawl URL yang ditentukan dan menampilkan hasilnya ke Cloud Search.
Prasyarat
Sebelum Anda men-deploy plugin pengindeks Apache Nutch Cloud Search, kumpulkan informasi yang diperlukan untuk menghubungkan Google Cloud Search dan sumber data:
- Kunci pribadi Google Workspace (yang berisi ID akun layanan). Untuk mengetahui informasi tentang cara mendapatkan kunci pribadi, buka Mengonfigurasi akses ke Google Cloud Search API.
- ID sumber data Google Workspace. Untuk mengetahui informasi tentang cara mendapatkan ID sumber data, buka Menambahkan sumber data untuk penelusuran.
Langkah 1: Buat dan instal software plugin dan Apache Nutch
Clone repositori plugin pengindeksan dari GitHub.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Lihat versi plugin pengindeks yang diinginkan:
$ git checkout tags/v1-0.0.5
Build plugin pengindeksan.
$ mvn package
Untuk melewati pengujian saat mem-build plugin pengindeksan, gunakan
mvn package -DskipTests
.Download Apache Nutch 1.15 dan ikuti petunjuk penginstalan Apache Nutch.
Ekstrak
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(di-build pada langkah 2) ke folder. Salin folderplugins/indexer-google-cloudsearch
ke folder plugin penginstalan Apache Nutch (apache-nutch-1.15/plugins
).
Langkah 2: Konfigurasikan plugin pengindeksan
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 diisi. ID sumber Google Cloud Search yang disiapkan admin Google Workspace untuk plugin pengindeks. |
Akun layanan | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Wajib diisi. File kunci akun layanan Google Cloud Search yang dibuat oleh 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 pengindeksan. Anda dapat mengonfigurasi cara
plugin mengirimkan 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
Buka
conf/nutch-site.xml
dan tambahkan parameter berikut:Setelan Parameter Plugin mencakup plugin.includes = text
Wajib. Daftar plugin yang digunakan. Informasi ini harus mencakup setidaknya:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xml
memberikan nilai default untuk properti ini, tetapi Anda juga harus menambahkanindexer-google-cloudsearch
secara manual ke dalamnya.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 cara menyiapkan Apache Nutch untuk tag meta, buka Tag meta penguraian Nutch.
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>
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 Lokasi ke file konfigurasi Google Cloud Search gcs.config.file = path
Wajib. Lokasi lengkap (absolut) ke file konfigurasi Google Cloud Search.
Format upload gcs.uploadFormat = text
Opsional. Format di mana 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 yang mendorong konten tekstual yang diekstrak. Nilai defaultnya adalahraw
.
Langkah 4: Konfigurasikan crawl web
Sebelum memulai crawl web, konfigurasikan crawl sehingga hanya mencakup informasi yang ingin disediakan organisasi Anda dalam hasil penelusuran. Bagian ini memberikan ringkasan; untuk mengetahui informasi selengkapnya tentang cara menyiapkan web crawl, buka tutorial Nutch.
Siapkan URL mulai.
URL mulai mengontrol lokasi web crawler Apache Nutch saat memulai meng-crawl konten Anda. URL mulai akan memungkinkan web crawler menjangkau semua konten yang ingin Anda sertakan dalam crawl tertentu dengan mengikuti link. URL awal wajib diisi.
Untuk menyiapkan URL mulai:
Ubah direktori kerja ke direktori penginstalan nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Buat direktori untuk url:
$ mkdir urls
Buat file bernama
seed.txt
dan cantumkan URL di dalamnya dengan 1 URL per baris.
Siapkan aturan ikuti dan aturan jangan ikuti.
Aturan ikuti URL mengontrol URL mana yang akan di-crawl dan disertakan di indeks Google Cloud Search. Web crawler memeriksa URL dengan aturan ikuti URL. 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:
Ubah direktori kerja ke direktori penginstalan nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Edit
conf/regex-urlfilter.txt
untuk mengubah aturan ikuti/jangan ikuti: \$ nano conf/regex-urlfilter.txt
Masukkan ekspresi reguler dengan awalan "+" atau "-" untuk mengikuti / tidak mengikuti pola dan ekstensi URL, seperti yang ditunjukkan dalam 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) #+.
Edit skrip crawl.
Jika parameter
gcs.uploadFormat
tidak ada atau ditetapkan ke "raw", Anda harus menambahkan argumen "-addBinaryContent -base64
" untuk diteruskan ke perintahnutch 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.- Buka skrip
crawl
diapache-nutch-1.15/bin
. Tambahkan opsi
-addBinaryContent -base64
ke skrip, seperti dalam 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 ..."
- Buka skrip
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 individu.
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 verbose logging lebih lanjut, edit
conf/log4j.properties
.