Puoi configurare Google Cloud Search in modo che mostri contenuti web ai tuoi utenti eseguendo il deployment del plug-in dell'indicizzatore di Google Cloud Search per Apache Nutch, un web crawler open source.
Quando avvii la scansione web, Apache Nutch esegue la scansione del web e utilizza il plug-in indexer per caricare versioni binarie (o testuali) originali dei contenuti del documento nell'API di indicizzazione di Google Cloud Search. L'API di indicizzazione indicizza i contenuti e fornisce i risultati ai tuoi utenti.
Considerazioni importanti
Requisiti di sistema
Requisiti di sistema | |
---|---|
Sistema operativo | Solo Linux:
|
Software |
|
Tipi di documenti Apache Tika | Formati di documenti supportati da Apache Tika 1.18 |
Esegui il deployment del plug-in indexer
I passaggi seguenti spiegano come installare il plug-in dell'indicizzatore e come configurare i relativi componenti per eseguire la scansione degli URL specificati e restituire i risultati a Cloud Search.
Prerequisiti
Prima di eseguire il deployment del plug-in dell'indicizzatore Apache Nutch di Cloud Search, raccogli le informazioni necessarie per connettere Google Cloud Search e l'origine dati:
- Chiave privata di Google Workspace (che contiene l'ID account di servizio). Per informazioni su come ottenere una chiave privata, vai a Configura l'accesso all'API Google Cloud Search.
- ID origine dati Google Workspace. Per informazioni su come ottenere un ID origine dati, vai a Aggiungi un'origine dati per la ricerca.
Passaggio 1: crea e installa il software plug-in e Apache Nutch
Clona il repository del plug-in dell'indicizzatore da GitHub.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Verifica la versione desiderata del plug-in indexer:
$ git checkout tags/v1-0.0.5
Crea il plug-in dell'indicizzatore.
$ mvn package
Per saltare i test durante la creazione del plug-in dell'indicizzatore, usa
mvn package -DskipTests
.Scarica Apache Nutch 1.15 e segui le istruzioni per l'installazione di Apache Nutch.
Estrai
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(passaggio 2 creato) in una cartella. Copia la cartellaplugins/indexer-google-cloudsearch
nella cartella di installazione dei plug-in di Apache Nutch (apache-nutch-1.15/plugins
).
Passaggio 2: configura il plug-in indexer
Per configurare il plug-in Apache Nutch Indexer, crea un file denominato plugin-configuration.properties
.
Il file di configurazione deve specificare i seguenti parametri, che sono necessarie per accedere all'origine dati di Google Cloud Search.
Impostazione | Parametro |
ID origine dati | api.sourceId = 1234567890abcdef
Obbligatorio. L'ID origine di Google Cloud Search che l'amministratore di Google Workspace ha configurato per il plug-in dell'indicizzatore. |
Service account | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Obbligatorio. Il file della chiave dell'account di servizio di Google Cloud Search creato dall'amministratore di Google Workspace per l'accessibilità del plug-in dell'indicizzatore. |
L'esempio seguente mostra un file di configurazione di esempio con i parametri richiesti.
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
Il file di configurazione può contenere anche altri parametri che controllano il comportamento del plug-in dell'indicizzatore. Puoi configurare il modo in cui
esegue il push dei dati nell'API Cloud Search, defaultAcl.*
e batch.*
. Puoi anche configurare il modo in cui il plug-in indexer compila i metadati e i dati strutturati.
Per le descrizioni di questi parametri, vai a Parametri dei connettori forniti da Google.
Passaggio 3: configura Apache Nutch
Apri
conf/nutch-site.xml
e aggiungi i seguenti parametri:Impostazione Parametro Il plug-in include plugin.includes = text
Obbligatorio. Elenco dei plug-in da utilizzare. Deve includere almeno:
- index-basic
- indice-altro
- indexer-google-cloudsearch
conf/nutch-default.xml
fornisce un valore predefinito per questa proprietà, ma devi anche aggiungere manualmenteindexer-google-cloudsearch
.Nomi dei metatag metatags.names = text
(Facoltativo) Elenco separato da virgole di tag mappati alle proprietà nel schema dell'origine dati corrispondente. Per ulteriori informazioni su come impostare Apache Nutch per i meta tag, vai a Tag metas per l'analisi approfondita.
L'esempio seguente mostra la modifica richiesta a
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>
Apri
conf/index-writers.xml
e aggiungi la sezione seguente:<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>
L'elemento <writer> contiene i seguenti parametri:
Impostazione Parametro Percorso del file di configurazione di Google Cloud Search gcs.config.file = path
Obbligatorio. Il percorso completo (assoluto) del file di configurazione di Google Cloud Search.
Formato di caricamento gcs.uploadFormat = text
(Facoltativo) Il formato in cui il plug-in dell'indicizzatore invia i contenuti dei documenti all'API Google Cloud Search Indexer. I valori validi sono:
raw
: il plug-in dell'indicizzatore trasferisce i contenuti dei documenti originali e non convertiti.text
: il plug-in dell'indicizzatore esegue il push dei contenuti testuali estratti. Il valore predefinito èraw
.
Passaggio 4: configura la scansione del web
Prima di avviare una scansione web, configurala in modo che includa solo le informazioni che la tua organizzazione vuole rendere disponibili nella ricerca che consentono di analizzare i dati e visualizzare i risultati. Questa sezione fornisce una panoramica: per ulteriori informazioni su come configurare una scansione web, visita la Tutorial.
Imposta gli URL di inizio.
Gli URL di avvio controllano il punto in cui il web crawler Apache Nutch inizia la scansione dei tuoi contenuti. Gli URL iniziali devono consentire al web crawler di raggiungere tutti i contenuti che desideri includere in una determinata scansione seguendo i link. Gli URL di inizio sono obbligatori.
Per impostare gli URL di inizio:
Cambia la directory di lavoro nella directory di installazione di nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Crea una directory per gli URL:
$ mkdir urls
Crea un file denominato
seed.txt
ed elenca i relativi URL con 1 URL per riga.
Configura le regole Segui e Non seguire.
Le regole per seguire gli URL controllano quali URL vengono sottoposti a scansione e inclusi nell'indice di Google Cloud Search. Il web crawler confronta gli URL con i seguire le regole per gli URL. Solo gli URL che corrispondono a queste regole vengono sottoposti a scansione e indicizzazione.
Le regole da non seguire escludono gli URL dalla scansione e sono inclusi nell'indice di Google Cloud Search. Se un URL contiene un pattern non di scansione, il web crawler non ne esegue la scansione.
Per impostare le regole degli URL "Segui e non seguire", procedi nel seguente modo:
Cambia la directory di lavoro nella directory di installazione di nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Modifica
conf/regex-urlfilter.txt
per cambiare le regole da seguire/non seguire: \$ nano conf/regex-urlfilter.txt
Inserisci espressioni regolari con il segno "+" o "-" prefisso "Segui / non seguire" le estensioni e i pattern URL, come mostrato in i seguenti esempi. Sono consentite espressioni aperte.
# 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) #+.
Modifica lo script di scansione.
Se il parametro
gcs.uploadFormat
non è presente o è impostato su "raw", devi aggiungere "-addBinaryContent -base64
" da passare all'argomentonutch index
. Questi argomenti indicano al modulo Indicizzatore Nutch di includere contenuti binari in Base64 quando richiama il plug-in dell'indicizzatore. Lo script ./bin/crawl non contiene questi argomenti per impostazione predefinita.- Apri lo script
crawl
inapache-nutch-1.15/bin
. Aggiungi le opzioni
-addBinaryContent -base64
allo script, come nell'esempio seguente: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 ..."
- Apri lo script
Passaggio 5: avvia una scansione del web e il caricamento di contenuti
Dopo aver installato e configurato il plug-in dell'indicizzatore, puoi eseguirlo
in modalità locale. Utilizza gli script di ./bin
per eseguire un job di scansione oppure
singoli comandi Nutch.
L'esempio seguente presuppone che i componenti richiesti si trovino nell'ambiente
. Esegui Nutch con il seguente comando dalla directory apache-nutch-1.15
:
$ bin/crawl -i -s urls/ crawl-test/ 5
I log di scansione sono disponibili nell'output std (terminale) o nella directory logs/
. A
indirizzare l'output di logging o, per un logging più dettagliato, modificare
conf/log4j.properties
.