Puoi configurare Google Cloud Search per pubblicare contenuti web per i tuoi utenti eseguendo il deployment del plug-in di indicizzazione di Cloud Search per Apache Nutch, un web crawler open source.
Quando avvii la scansione del web, Apache Nutch esegue la scansione del web e utilizza il plug-in indexer per caricare le versioni binarie (o di testo) originali dei contenuti dei documenti nell'API Google Cloud Search. L'API Cloud Search indicizza i contenuti e mostra i risultati agli utenti.
Considerazioni importanti
Prima di eseguire il deployment del plug-in di indicizzazione, tieni presente le seguenti considerazioni.
Requisiti di sistema
| Requisiti di sistema | |
|---|---|
| Sistema operativo | Solo per Linux:
|
| Software |
|
| Tipi di documenti Apache Tika | Formati di documenti supportati da Apache Tika 1.18 |
Esegui il deployment del plug-in di indicizzazione
Questi passaggi descrivono come installare il plug-in di indicizzazione e configurare i relativi componenti per eseguire la scansione degli URL e restituire i risultati a Cloud Search.
Prerequisiti
Prima di eseguire il deployment del plug-in dell'indicizzatore, raccogli le informazioni necessarie per connettere 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 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 di indicizzazione 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 di indicizzazione che ti interessa:
$ git checkout tags/v1-0.0.5
Crea il plug-in dell'indicizzatore.
$ mvn package
Per ignorare i test durante la creazione del plug-in, 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.zipin una cartella. Copia la cartellaplugins/indexer-google-cloudsearchnella cartella Apache Nutchplugins(apache-nutch-1.15/plugins).
Passaggio 2: configura il plug-in di indicizzazione
Per configurare il plug-in, crea un file denominato plugin-configuration.properties.
Il file di configurazione deve specificare i seguenti parametri per accedere all'origine dati
Cloud Search.
| Impostazione | Parametro |
| ID origine dati | api.sourceId = 1234567890abcdef
Obbligatorio. L'ID origine Cloud Search che l'amministratore di Google Workspace ha configurato per il plug-in di indicizzazione. |
| Service account | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Obbligatorio. Il file della chiave del service account Cloud Search che l'amministratore di Google Workspace ha creato per l'accessibilità del plug-in di indicizzazione. |
L'esempio seguente mostra un file di configurazione di esempio:
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
Il file di configurazione può contenere anche parametri che controllano il comportamento del plug-in, ad esempio come il plug-in inserisce i dati nell'API Cloud Search e come compila i metadati e i dati strutturati. Per le descrizioni di questi parametri, vedi Parametri del connettore forniti da Google.
Passaggio 3: configura Apache Nutch
Apri
conf/nutch-site.xmle aggiungi i seguenti parametri:Impostazione Parametro Il plug-in include plugin.includes = textObbligatorio. Elenco dei plug-in da utilizzare. Deve includere almeno:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xmlfornisce un valore predefinito, ma devi aggiungere manualmenteindexer-google-cloudsearch.Nomi dei metatag metatags.names = textFacoltativo. Elenco separato da virgole di tag che vengono mappati alle proprietà nello schema dell'origine dati corrispondente. Per saperne di più, consulta Metatag Nutch-parse.
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.xmle 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 Cloud Search gcs.config.file = pathObbligatorio. Il percorso completo (assoluto) del file di configurazione di Cloud Search.
Formato di caricamento gcs.uploadFormat = textFacoltativo. Il formato utilizzato dal plug-in per eseguire il push dei contenuti del documento nell'API Cloud Search. I valori validi sono:
raw: esegue il push dei contenuti originali non convertiti.text: 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. Per ulteriori informazioni, consulta il tutorial su Nutch.
Configura gli URL di avvio.
Gli URL iniziali controllano dove il crawler web inizia a eseguire la scansione dei tuoi contenuti. Il crawler deve essere in grado di raggiungere tutti i contenuti che vuoi includere seguendo i link.
Per configurare gli URL di avvio:
- Passa alla directory di installazione di Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
- Crea una directory per gli URL:
$ mkdir urls
- Crea un file denominato
seed.txted elenca un URL per riga.
- Passa alla directory di installazione di Nutch:
Configura le regole di follow e nofollow.
Le regole per gli URL controllano quali URL vengono indicizzati dal crawler. Le regole nofollow escludono gli URL dalla scansione.
Per configurare queste regole:
- Passa alla directory di installazione di Nutch.
- Modifica
conf/regex-urlfilter.txt:$ nano conf/regex-urlfilter.txt
Inserisci le espressioni regolari con il prefisso "+" o "-":
# 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 #+.
Modifica lo script di scansione.
Se il parametro
gcs.uploadFormatè mancante o impostato su "raw", devi aggiungere gli argomenti-addBinaryContent -base64al comandonutch index. Questi argomenti indicano al modulo Nutch Indexer di includere i contenuti binari in Base64.- Apri lo script
crawlinapache-nutch-1.15/bin. Aggiungi le opzioni come mostrato in questo esempio:
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 configurato il plug-in di indicizzazione, puoi eseguirlo in modalità locale. Utilizza gli script
di ./bin per eseguire un job di scansione.
L'esempio seguente presuppone che i componenti si trovino nella directory locale. Esegui Nutch
dalla directory apache-nutch-1.15:
$ bin/crawl -i -s urls/ crawl-test/ 5
I log di scansione sono disponibili nel terminale o nella directory logs/. Per indirizzare
l'output di logging, modifica conf/log4j.properties.