Deployment di un plug-in Apache Nutch Indexer

Puoi configurare Google Cloud Search per pubblicare contenuti web per i tuoi utenti eseguendo il deployment del plug-in dell'indicizzatore di 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 dell'indicizzatore 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 pubblica i risultati per i tuoi utenti.

Considerazioni importanti

Prima di eseguire il deployment del plug-in dell'indicizzatore, tieni presente le seguenti considerazioni.

Requisiti di sistema

Requisiti di sistema
Sistema operativo Solo Linux:
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 bit)
Software
  • Apache Nutch versione 1.15. Il software del plug-in dell'indicizzatore include questa versione di Nutch.
  • Java JRE 1.8 installato sul computer che eseguirà il plug-in dell'indicizzatore
Tipi di documenti Apache Tika Formati di documenti supportati da Apache Tika 1.18

Esegui il deployment del plug-in dell'indicizzatore

Questi passaggi descrivono come installare il plug-in dell'indicizzatore 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:

Passaggio 1: crea e installa il software del plug-in e Apache Nutch

  1. 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
  2. Estrai la versione del plug-in dell'indicizzatore che ti interessa:

    $ git checkout tags/v1-0.0.5
  3. Crea il plug-in dell'indicizzatore.

    $ mvn package

    Per saltare i test durante la creazione del plug-in, utilizza mvn package -DskipTests.

  4. Scarica Apache Nutch 1.15 e segui le istruzioni di installazione di Apache Nutch.

  5. Estrai target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip in una cartella. Copia la cartella plugins/indexer-google-cloudsearch nella cartella Apache Nutch plugins (apache-nutch-1.15/plugins).

Passaggio 2: configura il plug-in dell'indicizzatore

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 di Cloud Search.

Impostazione Parametro
ID origine dati api.sourceId = 1234567890abcdef
Obbligatorio. L'ID origine di 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 del service account di Cloud Search che l'amministratore di Google Workspace ha creato per l'accessibilità del plug-in dell'indicizzatore.

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 popola i metadati e i dati strutturati. Per le descrizioni di questi parametri, vedi Parametri del connettore forniti da Google.

Passaggio 3: configura Apache Nutch

  1. Apri conf/nutch-site.xml e aggiungi i seguenti parametri:

    Impostazione Parametro
    Plug-in inclusi 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, ma devi aggiungere manualmente indexer-google-cloudsearch.
    Nomi dei metatag metatags.names = text

    Facoltativo. Elenco di tag separati da virgole che vengono mappati alle proprietà nello schema dell'origine dati corrispondente. Per saperne di più, vedi Metatag di analisi di 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>
    
  2. 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 Cloud Search gcs.config.file = path

    Obbligatorio. Il percorso completo (assoluto) del file di configurazione di Cloud Search.

    Formato di caricamento gcs.uploadFormat = text

    Facoltativo. Il formato utilizzato dal plug-in per inserire i contenuti dei documenti nell' API Cloud Search. I valori validi sono:

    • raw: inserisce i contenuti originali e non convertiti.
    • text: inserisce i contenuti testuali estratti. Il valore predefinito è raw.

Passaggio 4: configura la scansione web

Prima di avviare una scansione web, configurala in modo da includere solo le informazioni che la tua organizzazione vuole rendere disponibili. Per ulteriori informazioni, consulta il tutorial di Nutch.

  1. Configura gli URL di avvio.

    Gli URL di avvio controllano dove il web crawler inizia a eseguire la scansione dei contenuti. Il crawler deve essere in grado di raggiungere tutti i contenuti che vuoi includere seguendo i link.

    Per configurare gli URL di avvio:

    1. Passa alla directory di installazione di Nutch:
      $ cd ~/nutch/apache-nutch-X.Y/
    2. Crea una directory per gli URL:
      $ mkdir urls
    3. Crea un file denominato seed.txt ed elenca un URL per riga.
  2. Configura le regole di follow e di non follow.

    Le regole degli URL di follow controllano gli URL indicizzati dal crawler. Le regole di non follow escludono gli URL dalla scansione.

    Per configurare queste regole:

    1. Passa alla directory di installazione di Nutch.
    2. Modifica conf/regex-urlfilter.txt:
      $ nano conf/regex-urlfilter.txt
    3. Inserisci espressioni regolari con un 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
      #+.
      
  3. Modifica lo script di scansione.

    Se il parametro gcs.uploadFormat non è presente o è impostato su "raw", devi aggiungere gli argomenti -addBinaryContent -base64 al comando nutch index. Questi argomenti indicano al modulo dell'indicizzatore di Nutch di includere i contenuti binari in Base64.

    1. Apri lo script crawl in apache-nutch-1.15/bin.
    2. 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 ..."
      

Passaggio 5: avvia una scansione web e il caricamento dei contenuti

Dopo aver configurato il plug-in dell'indicizzatore, puoi eseguirlo in modalità locale. Utilizza gli script da ./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.