Apache Nutch-Indexierungs-Plug-in bereitstellen

Sie können Google Cloud Search für die Bereitstellung von Webinhalten für Ihre Nutzer einrichten. Dafür stellen Sie das Cloud Search-Indexierungs-Plug-in für Apache Nutch bereit, einen Open-Source-Web-Crawler.

Wenn Sie das Web-Crawling starten, crawlt Apache Nutch das Web und verwendet das Indexierungs-Plug-in, um ursprüngliche binäre oder Textversionen von Dokumentinhalten in die Google Cloud Search API hochzuladen. Die Cloud Search API indexiert den Inhalt und stellt den Nutzern die Ergebnisse bereit.

Wichtige Hinweise

Beachten Sie vor dem Bereitstellen des Indexierungs-Plug-ins die folgenden Punkte.

Systemanforderungen

Systemanforderungen
Betriebssystem Nur Linux:
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64-Bit)
Software
  • Apache Nutch-Version 1.15. Diese Version ist in der Software des Indexierungs-Plug-ins enthalten.
  • Java JRE 1.8, installiert auf dem Computer, auf dem das Indexierungs-Plug-in ausgeführt wird
Von Apache Tika unterstützte Dokumenttypen Von Apache Tika 1.18 unterstützte Dokumentformate

Indexierungs-Plug-in bereitstellen

In diesen Schritten wird beschrieben, wie Sie das Indexierungs-Plug-in installieren und seine Komponenten konfigurieren, um URLs zu crawlen und Ergebnisse an Cloud Search zurückzugeben.

Vorbereitung

Bevor Sie das Indexierungs-Plug-in bereitstellen, sollten Sie die erforderlichen Informationen sammeln, um Cloud Search und die Datenquelle zu verbinden:

Schritt 1: Plug-in-Software und Apache Nutch erstellen und installieren

  1. Klonen Sie das Indexierungs-Plug-in-Repository von GitHub.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. Checken Sie die gewünschte Version des Indexierungs-Plug-ins aus:

    $ git checkout tags/v1-0.0.5
  3. Erstellen Sie einen Build für das Indexierungs-Plug-in.

    $ mvn package

    Wenn Sie beim Erstellen des Plug-ins Tests überspringen möchten, verwenden Sie mvn package -DskipTests.

  4. Laden Sie Apache Nutch 1.15 herunter und folgen Sie der Installationsanleitung für Apache Nutch.

  5. Extrahieren Sie target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip in einen Ordner. Kopieren Sie den plugins/indexer-google-cloudsearch Ordner in den Ordner plugins von Apache Nutch (apache-nutch-1.15/plugins).

Schritt 2: Indexierungs-Plug-in konfigurieren

Zum Konfigurieren des Plug-ins erstellen Sie eine Datei mit dem Namen plugin-configuration.properties. In der Konfigurationsdatei müssen die folgenden Parameter angegeben werden, um auf die Cloud Search-Datenquelle zuzugreifen.

Einstellung Parameter
ID der Datenquelle api.sourceId = 1234567890abcdef
Pflichteingabe. Die ID der Cloud Search-Quelle, die der Google Workspace-Administrator für das Indexierungs-Plug-in eingerichtet hat.
Dienstkonto api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Pflichteingabe. Die Schlüsseldatei des Cloud Search-Dienstkontos, die der Google Workspace-Administrator für den Zugriff auf Indexierungs-Plug-ins erstellt hat.

Das folgende Beispiel zeigt eine Beispielkonfigurationsdatei:

# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json

Die Konfigurationsdatei kann auch Parameter enthalten, die das Plug-in-Verhalten steuern, z. B. wie das Plug-in Daten an die Cloud Search API überträgt und wie es Metadaten und strukturierte Daten ergänzt. Beschreibungen dieser Parameter finden Sie im Artikel zu den von Google bereitgestellten Connectorparametern.

Schritt 3: Apache Nutch konfigurieren

  1. Öffnen Sie conf/nutch-site.xml und fügen Sie die folgenden Parameter hinzu:

    Einstellung Parameter
    Verwendete Plug-ins plugin.includes = text

    Pflichteingabe. Liste der zu verwendenden Plug-ins. Diese Liste muss mindestens Folgendes enthalten:

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml enthält einen Standardwert, Sie müssen aber manuell indexer-google-cloudsearch hinzufügen.
    Metatags-Namen metatags.names = text

    Optional. Durch Kommas getrennte Liste der Tags, die Attributen im entsprechenden Datenquellenschema zugeordnet sind. Weitere Informationen finden Sie unter Nutch-parse metatags.

    Das folgende Beispiel zeigt die erforderliche Änderung an 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. Öffnen Sie conf/index-writers.xml und fügen Sie den folgenden Abschnitt hinzu:

    <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>
    

    Der Abschnitt <writer> enthält die folgenden Parameter:

    Einstellung Parameter
    Pfad zur Konfigurationsdatei von Cloud Search gcs.config.file = path

    Pflichteingabe. Der vollständige (absolute) Pfad zur Cloud Search Konfigurationsdatei.

    Upload-Format gcs.uploadFormat = text

    Optional. Das Format, das das Plug-in verwendet, um Dokumentinhalte an die Cloud Search API zu übertragen. Gültige Werte sind:

    • raw: Der ursprüngliche, nicht konvertierte Inhalt wird übertragen.
    • text: Der extrahierte Textinhalt wird übertragen. Der Standardwert ist raw.

Schritt 4: Web-Crawling konfigurieren

Konfigurieren Sie vor dem Web-Crawling das Crawling so, dass es nur Informationen enthält, die Ihre Organisation verfügbar machen möchte. Weitere Informationen finden Sie im Nutch-Tutorial.

  1. Richten Sie Start-URLs ein.

    Mit Start-URLs wird bestimmt, an welchem Punkt begonnen werden soll, Ihre Inhalte mit dem Web-Crawler zu erfassen. Der Crawler muss alle Inhalte erreichen können, die Sie einbeziehen möchten, indem er den Links folgt.

    So richten Sie Start-URLs ein:

    1. Wechseln Sie in das Installationsverzeichnis von Nutch:
      $ cd ~/nutch/apache-nutch-X.Y/
    2. Erstellen Sie ein Verzeichnis für URLs:
      $ mkdir urls
    3. Erstellen Sie eine Datei mit dem Namen seed.txt und geben Sie darin die URLs an (jeweils eine pro Zeile).
  2. Richten Sie Regeln für das Ein- und Ausschließen von Links ein.

    URL-Regeln für das Einschließen von Links steuern, welche URLs der Crawler indexiert. Mit Regeln für das Ausschließen von Links wird verhindert, dass URLs gecrawlt werden.

    So richten Sie diese Regeln ein:

    1. Wechseln Sie in das Installationsverzeichnis von Nutch.
    2. Bearbeiten Sie conf/regex-urlfilter.txt:
      $ nano conf/regex-urlfilter.txt
    3. Geben Sie reguläre Ausdrücke mit dem Präfix „+“ oder „-“ ein:

      # 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. Bearbeiten Sie das Crawl-Skript.

    Wenn der Parameter gcs.uploadFormat fehlt oder auf „raw“ gesetzt ist, müssen Sie die Argumente -addBinaryContent -base64 zum Befehl nutch index hinzufügen. Sie führen dazu, dass vom Nutch Indexierungs-Modul binärer Inhalt in Base64 aufgenommen wird.

    1. Öffnen Sie das Skript crawl in apache-nutch-1.15/bin.
    2. Fügen Sie die Optionen wie in diesem Beispiel hinzu:

            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 ..."
      

Schritt 5: Web-Crawling und Inhaltsupload starten

Nachdem Sie das Indexierungs-Plug-in eingerichtet haben, können Sie es im lokalen Modus ausführen. Verwenden Sie Skripts aus ./bin, um einen Crawling-Job auszuführen.

Im folgenden Beispiel befinden sich die Komponenten im lokalen Verzeichnis. Führen Sie Nutch aus dem Verzeichnis apache-nutch-1.15 aus:

$ bin/crawl -i -s urls/ crawl-test/ 5

Crawl-Protokolle sind im Terminal oder im Verzeichnis logs/ verfügbar. Bearbeiten Sie conf/log4j.properties, um die Protokollierung anzupassen.