Apache Nutch-Indexierungs-Plug-in bereitstellen

Sie können Google Cloud Search so einrichten, dass Webinhalte Ihren Nutzern zur Verfügung stehen. Dazu stellen Sie das Indexierungs-Plug-in 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 Text-)Versionen des Dokumentinhalts in die Indexierungs-API von Google Cloud Search hochzuladen. Die Indexierungs-API indexiert die Inhalte und stellt den Nutzern die Ergebnisse 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 von Nutch 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 Cloud Search Apache Nutch bereitstellen, sollten Sie die Informationen erfassen, 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 der Apache Nutch-Installations-Plug-ins (apache-nutch-1.15/plugins).

Schritt 2: Indexierungs-Plug-in konfigurieren

Zum Konfigurieren des Indexierungs-Plug-ins für Apache Nutch erstellen Sie eine Datei mit dem Namen plugin-configuration.properties.

In der Konfigurationsdatei müssen die folgenden Parameter angegeben werden, 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 an die Cloud Search API, defaultAcl.* und batch.* überträgt. Sie können auch konfigurieren, wie das Indexierungs-Plug-in Metadaten und strukturierte Daten füllt.

Eine Beschreibung 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
    Plug-in enthält plugin.includes = text

    Erforderlich. Liste der zu verwendenden Plug-ins. Mindestens:

    • Basisindex
    • Index-Mehr
    • Google-Cloudsuche-indexer
    conf/nutch-default.xml stellt einen Standardwert für dieses Attribut 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 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 Google Cloud Search-Konfigurationsdatei 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

Konfiguriere das Crawling vor dem Start eines Web-Crawlings so, dass es nur Informationen enthält, die deine Organisation in den Suchergebnissen verfügbar machen möchte. Dieser Abschnitt bietet einen Überblick. Weitere Informationen zum Einrichten eines Web-Crawlings finden Sie im Nutch-Tutorial.

  1. Richten Sie Start-URLs ein.

    Mit Start-URLs wird gesteuert, wo der Web-Crawler von Apache Nutch beginnt, Ihre Inhalte zu crawlen. Die Start-URLs sollten es dem Web-Crawler ermöglichen, über die Links auf alle Inhalte zuzugreifen, die Sie in ein bestimmtes Crawling einschließen möchten. Start-URLs sind erforderlich.

    So richten Sie Start-URLs ein:

    1. Ändern Sie das Arbeitsverzeichnis in das Installationsverzeichnis für 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 URLs an (jeweils eine URL pro Zeile).

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

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

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

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

    1. Ändern Sie das Arbeitsverzeichnis in das Installationsverzeichnis für Nutch:

      $ 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 dem Präfix „+“ oder „-“ ein, um URL-Mustern und Erweiterungen zu folgen bzw. nicht zu folgen, wie in den folgenden Beispielen gezeigt. Ausdrücke mit offenem Ende 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 Crawling-Skript.

    Wenn der Parameter gcs.uploadFormat fehlt oder auf „raw“ festgelegt 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. crawl-Script in apache-nutch-1.15/bin öffnen.
    2. Fügen Sie dem Skript die -addBinaryContent -base64-Optionen wie im folgenden 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 installiert und eingerichtet haben, können Sie es eigenständig im lokalen Modus 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 anzuleiten oder ein ausführlicheres Logging zu erhalten.