Apache Nutch-Indexierungs-Plug-in bereitstellen

Sie können Google Cloud Search so einrichten, dass Ihren Nutzern Webinhalte zur Verfügung gestellt werden, indem Sie das Google Cloud Search-Indexierungs-Plug-in für Apache Nutch, einen Open-Source-Web-Crawler, bereitstellen.

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 Indexierungs-API hochzuladen. Die Indexierungs-API indexiert den Inhalt und stellt die Ergebnisse für Ihre Nutzer bereit.

Wichtige Aspekte

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
Apache Tika-Dokumenttypen Von Apache Tika 1.18 unterstützte Dokumentformate

Indexierungs-Plug-in bereitstellen

In den folgenden Schritten wird beschrieben, wie Sie das Indexierungs-Plug-in installieren und seine Komponenten so konfigurieren, dass die angegebenen URLs gecrawlt und die Ergebnisse an Cloud Search zurückgegeben werden.

Voraussetzungen

Bevor Sie das Indexierungs-Plug-in für Apache Nutch für Cloud Search bereitstellen, erfassen Sie die Informationen, die zum Verbinden von Google Cloud Search und der Datenquelle erforderlich sind:

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. Prüfen Sie die gewünschte Version des Indexierungs-Plug-ins:

    $ git checkout tags/v1-0.0.5
  3. Erstellen Sie das Indexierungs-Plug-in.

    $ mvn package

    Wenn Sie die Tests beim Erstellen des Indexierungs-Plug-ins ü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 Schritt 2 erstellt) in einen Ordner. Kopieren Sie den Ordner plugins/indexer-google-cloudsearch in den Ordner für die Apache Nutch-Installations-Plug-ins (apache-nutch-1.15/plugins).

Schritt 2: Indexierungs-Plug-in konfigurieren

Erstellen Sie eine Datei mit dem Namen plugin-configuration.properties, um das Apache Nutch Indexierungs-Plug-in zu konfigurieren.

Die Konfigurationsdatei muss die folgenden Parameter enthalten, die für den Zugriff auf die Google Cloud Search-Datenquelle erforderlich sind.

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

Das folgende Beispiel zeigt eine Beispielkonfigurationsdatei mit den erforderlichen Parametern.

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

Die Konfigurationsdatei kann auch andere Parameter enthalten, die das Verhalten des Indexierungs-Plug-ins steuern. Sie können konfigurieren, wie das Plug-in Daten in die Cloud Search API, defaultAcl.* und batch.* überträgt. Sie können auch konfigurieren, wie das Indexierungs-Plug-in Metadaten und strukturierte Daten ausfüllt.

Weitere Informationen 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
    Eingeschlossenes Plug-in plugin.includes = text

    Erforderlich. Liste der zu verwendenden Plug-ins. Dies muss mindestens Folgendes enthalten:

    • Index-Basic
    • Index-Mehr
    • Google Cloud Search für Indexierung
    conf/nutch-default.xml stellt einen Standardwert für diese Property bereit, aber Sie müssen indexer-google-cloudsearch auch manuell hinzufügen.
    Metatags-Namen metatags.names = text

    Optional. Durch Kommas getrennte Liste von Tags, die Properties im Schema der entsprechenden Datenquelle zugeordnet sind. Weitere Informationen zum Einrichten von Apache Nutch für Meta-Tags finden Sie unter Meta-Tags mit Nutch-Parsing.

    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 Google Cloud Search gcs.config.file = path

    Erforderlich. Der vollständige (absolute) Pfad zur Konfigurationsdatei von Google Cloud Search.

    Upload-Format gcs.uploadFormat = text

    Optional. Das Format, in dem das Indexierungs-Plug-in Dokumentinhalte an die Indexierungs-API von Google Cloud Search überträgt. Gültige Werte sind:

    • raw: Der ursprüngliche, nicht konvertierte Dokumentinhalt wird vom Indexierungs-Plug-in übertragen.
    • text: Extrahierter Textinhalt wird vom Indexierungs-Plug-in übertragen. Der Standardwert ist raw.

Schritt 4: Web-Crawling konfigurieren

Bevor Sie ein Web-Crawling starten, konfigurieren Sie das Crawling so, dass es nur Informationen enthält, die Ihre Organisation in Suchergebnissen verfügbar machen möchte. Dieser Abschnitt bietet einen Überblick. Weitere Informationen zum Einrichten eines Web-Crawlings finden Sie in der Nutch-Anleitung.

  1. Richten Sie Start-URLs ein.

    Mit Start-URLs wird gesteuert, wo der Web-Crawler von Apache Nutch mit dem Crawlen Ihrer Inhalte beginnt. Die Start-URLs sollen es dem Web-Crawler ermöglichen, alle Inhalte zu erreichen, die Sie in ein bestimmtes Crawling einbeziehen möchten, indem er den Links folgt. Start-URLs sind erforderlich.

    So richten Sie Start-URLs ein:

    1. Wechseln Sie vom Arbeitsverzeichnis in das Nutch-Installationsverzeichnis:

      $ 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 mit einer URL pro Zeile an.

  2. Richten Sie Regeln für das Ein- und Ausschließen von Links ein.

    Mit URL-Regeln für das Verfolgen von URLs wird gesteuert, welche URLs gecrawlt und in den Google Cloud Search-Index aufgenommen werden. Der Web-Crawler prüft URLs anhand der folgenden URL-Regeln. Nur URLs, die diesen Regeln entsprechen, werden gecrawlt und indexiert.

    Mit Regeln für das Ausschließen von Links wird verhindert, dass URLs gecrawlt und in den Google Cloud Search-Index aufgenommen werden. Wenn eine URL ein Nicht-Crawling-Muster enthält, wird sie nicht vom Web-Crawler gecrawlt.

    So richten Sie URL-Regeln für das Ein- und Ausschließen von Links ein:

    1. Wechseln Sie vom Arbeitsverzeichnis in das Nutch-Installationsverzeichnis:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Bearbeiten Sie conf/regex-urlfilter.txt, um die Regeln für das Ein- bzw. Ausschließen von Links zu ändern: \

      $ nano conf/regex-urlfilter.txt
    3. Geben Sie reguläre Ausdrücke mit einem Präfix „+“ oder „-“ ein, um URL-Mustern und Erweiterungen zu folgen bzw. nicht zu folgen, wie in den folgenden Beispielen gezeigt. Offene Ausdrücke sind zulässig.

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

    Wenn der Parameter gcs.uploadFormat fehlt oder auf „raw“ gesetzt ist, müssen Sie die Argumente „-addBinaryContent -base64“ hinzufügen, die an den Befehl nutch index übergeben werden. Diese Argumente weisen das Nutch Indexierungs-Modul an, binären Inhalt in Base64 aufzunehmen, wenn das Indexierungs-Plug-in aufgerufen wird. Das Skript „./bin/crawl“ verfügt standardmäßig nicht über diese Argumente.

    1. Öffnen Sie das Skript crawl in apache-nutch-1.15/bin.
    2. Fügen Sie dem Skript die Optionen -addBinaryContent -base64 hinzu, wie im folgenden Beispiel gezeigt:

            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 Upload von Inhalten starten

Nachdem Sie das Indexierungs-Plug-in installiert und eingerichtet haben, können Sie es im lokalen Modus eigenständig ausführen. Verwenden Sie die Skripts von ./bin, um einen Crawling-Job oder einzelne Nutch-Befehle auszuführen.

Im folgenden Beispiel wird davon ausgegangen, dass sich die erforderlichen Komponenten im lokalen Verzeichnis befinden. Führen Sie Nutch mit dem folgenden Befehl aus dem Verzeichnis apache-nutch-1.15 aus:

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

Crawl-Protokolle sind in der Standardausgabe (Terminal) oder im Verzeichnis logs/ verfügbar. Bearbeiten Sie conf/log4j.properties, um die Logging-Ausgabe weiterzuleiten oder ein ausführlicheres Logging zu erhalten.