Puoi configurare Google Cloud Search per pubblicare contenuti web per i tuoi utenti implementando il plug-in di indicizzazione di Google Cloud Search per Apache Nutch, un crawler web open source.
Quando avvii la scansione del web, Apache Nutch esegue la scansione del web e utilizza il plug-in di indicizzazione per caricare le versioni binarie (o di testo) originali dei contenuti dei documenti nell'API di indicizzazione di Google Cloud Search. L'API di indicizzazione indicizza i contenuti e mostra i risultati agli utenti.
Considerazioni importanti
Requisiti di sistema
Requisiti di sistema | |
---|---|
Sistema operativo | Solo su Linux:
|
Software |
|
Tipi di documenti Apache Tika | Formati di documenti supportati da Apache Tika 1.18 |
Esegui il deployment del plug-in dell'indice
I passaggi riportati di seguito descrivono come installare il plug-in dell'indice e configurarne i componenti per eseguire la scansione degli URL specificati e restituire i risultati a Cloud Search.
Prerequisiti
Prima di eseguire il deployment del plug-in di indicizzazione Apache Nutch di Cloud Search, raccogli le informazioni necessarie per collegare 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 Configurare l'accesso all'API Google Cloud Search.
- ID origine dati di Google Workspace. Per informazioni su come ottenere un ID origine dati, vai a Aggiungere un'origine dati per la ricerca.
Passaggio 1: crea e installa il software del plug-in e Apache Nutch
Clona il repository del plug-in dell'indice da GitHub.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Controlla la versione del plug-in dell'indice che preferisci:
$ git checkout tags/v1-0.0.5
Crea il plug-in dell'indice.
$ mvn package
Per saltare i test durante la creazione del plug-in dell'indice, utilizza
mvn package -DskipTests
.Scarica Apache Nutch 1.15 e segui le istruzioni di installazione di Apache Nutch.
Estrai
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(creato nel passaggio 2) in una cartella. Copia la cartellaplugins/indexer-google-cloudsearch
nella cartella dei plug-in di installazione di Apache Nutch (apache-nutch-1.15/plugins
).
Passaggio 2: configura il plug-in dell'indice
Per configurare il plug-in di indicizzazione Apache Nutch, crea un file denominato plugin-configuration.properties
.
Il file di configurazione deve specificare i seguenti parametri, necessari 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 configurato dall'amministratore di Google Workspace per il plug-in dell'indicizzatore. |
Service account | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Obbligatorio. Il file della chiave dell'account di servizio Google Cloud Search creato dall'amministratore di Google Workspace per l'accessibilità del plug-in dell'indice. |
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'indice. Puoi configurare la modalità di invio dei dati da parte del plug-in all'API Cloud Search, a defaultAcl.*
e a batch.*
. Puoi anche configurare il modo in cui il plug-in dell'indice compila i metadati e i dati strutturati.
Per le descrizioni di questi parametri, vai a Parametri del connettore 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
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xml
fornisce un valore predefinito per questa proprietà, ma devi aggiungere ancheindexer-google-cloudsearch
manualmente.Nomi dei metatag metatags.names = text
Facoltativo. Elenco di tag separati da virgole che mappano alle proprietà nello schema dell'origine dati corrispondente. Per scoprire di più su come configurare Apache Nutch per i metatag, vai a Metatag di analisi Nutch.
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 seguente sezione:<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>
La sezione <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 di indicizzazione invia i contenuti dei documenti all'API di indicizzazione di Google Cloud Search. I valori validi sono:
raw
: il plug-in dell'indice invia i contenuti originali dei documenti non convertiti.text
: il plug-in dell'indice invia i contenuti di testo estratti. Il valore predefinito èraw
.
Passaggio 4: configura la scansione del web
Prima di avviare una scansione del web, configurala in modo che includa solo le informazioni che la tua organizzazione vuole rendere disponibili nei risultati di ricerca. Questa sezione fornisce una panoramica. Per ulteriori informazioni su come configurare una scansione del web, consulta il tutorial su Nutch.
Configura gli URL di avvio.
Gli URL di inizio controllano dove il crawler web Apache Nutch inizia a eseguire la scansione dei contenuti. Gli URL di partenza devono consentire al crawler web di raggiungere tutti i contenuti che vuoi includere in una determinata scansione seguendo i link. Gli URL di inizio sono obbligatori.
Per configurare gli URL di avvio:
Cambia la directory di lavoro in quella di installazione di Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Crea una directory per gli URL:
$ mkdir urls
Crea un file denominato
seed.txt
e elenca gli URL con un URL per riga.
Configura le regole di follow e do not follow.
Le regole URL segui controllano quali URL vengono sottoposti a scansione e inclusi nell'indice di Google Cloud Search. Il crawler web controlla gli URL in base alle regole di seguito. Solo gli URL che corrispondono a queste regole vengono sottoposti a scansione e indicizzati.
Le regole di non follow escludono gli URL dalla scansione e dall'inclusione nell'indice di Google Cloud Search. Se un URL contiene un pattern di non scansione, il crawler web non lo esegue.
Per configurare le regole per gli URL da seguire e non seguire:
Cambia la directory di lavoro in quella di installazione di Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Modifica
conf/regex-urlfilter.txt
per modificare le regole di follow/do-not-follow: \$ nano conf/regex-urlfilter.txt
Inserisci espressioni regolari con un prefisso "+" o "-" per seguire / non seguire pattern e estensioni URL, come mostrato negli esempi riportati di seguito. 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 gli argomenti "-addBinaryContent -base64
" da passare al comandonutch index
. Questi argomenti indicano al modulo Nutch Indexer di includere contenuti binari in base64 quando richiama il plug-in dell'indice. Lo script ./bin/crawl non ha 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 dei contenuti
Dopo aver installato e configurato il plug-in dell'indice, puoi eseguirlo autonomamente in modalità locale. Utilizza gli script di ./bin
per eseguire un job di scansione o singoli comandi Nutch.
L'esempio seguente presuppone che i componenti richiesti si trovino nella directory locale. 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 standard (terminale) o nella directory logs/
. Per indirizzare l'output dei log o per una registrazione più dettagliata, modifica conf/log4j.properties
.