Sie können Google Cloud Search für die Bereitstellung von Webinhalten für Ihre Nutzer einrichten. Dafür stellen Sie das Google 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 Indexing API hochzuladen. Die Indexing API indexiert den Inhalt und stellt den Nutzern die Ergebnisse bereit.
Wichtige Aspekte
Systemanforderungen
Systemanforderungen | |
---|---|
Betriebssystem | Nur Linux:
|
Software |
|
Von Apache Tika unterstützte 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 konfigurieren, um die angegebenen URLs zu crawlen und die Ergebnisse an Cloud Search zurückzugeben.
Vorbereitung
Bevor Sie das Indexierungs-Plug-in für Cloud Search Apache Nutch bereitstellen, sollten Sie die erforderlichen Informationen sammeln, um Google Cloud Search und die Datenquelle zu verbinden:
- Privater Google Workspace-Schlüssel, der die ID des Dienstkontos enthält. Weitere Informationen zum Abrufen eines privaten Schlüssels finden Sie im Leitfaden Zugriff auf die Google Cloud Search API konfigurieren.
- ID der Google Workspace-Datenquelle. Informationen zum Abrufen einer Datenquellen-ID finden Sie unter Datenquelle für die Suche hinzufügen.
Schritt 1: Plug-in-Software und Apache Nutch erstellen und installieren
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
Checken Sie die gewünschte Version des Indexierungs-Plug-ins aus:
$ git checkout tags/v1-0.0.5
Erstellen Sie einen Build für das Indexierungs-Plug-in.
$ mvn package
Wenn Sie die Tests beim Erstellen des Indexierungs-Plug-ins überspringen möchten, verwenden Sie
mvn package -DskipTests
.Laden Sie Apache Nutch 1.15 herunter und folgen Sie der Installationsanleitung für Apache Nutch.
Extrahieren Sie
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(in Schritt 2 erstellt) in einen Ordner. Kopieren Sie den Ordnerplugins/indexer-google-cloudsearch
in den Ordner mit den Apache Nutch-Installations-Plug-ins (apache-nutch-1.15/plugins
).
Schritt 2: Indexierungs-Plug-in konfigurieren
Zum Konfigurieren des Apache Nutch Indexierungs-Plug-ins 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 Datenquelle von Google Cloud Search 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 des Indexierungs-Plug-ins 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, in defaultAcl.*
und in batch.*
überträgt. Außerdem lässt sich konfigurieren, wie das Indexierungs-Plug-in Metadaten und strukturierte Daten ergänzt.
Beschreibungen dieser Parameter finden Sie im Artikel zu den von Google bereitgestellten Connectorparametern.
Schritt 3: Apache Nutch konfigurieren
Öffnen Sie
conf/nutch-site.xml
und fügen Sie die folgenden Parameter hinzu:Einstellung Parameter Verwendete Plug-ins plugin.includes = text
Erforderlich. Liste der zu verwendenden Plug-ins. Der Parameter muss mindestens Folgendes enthalten:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xml
stellt einen Standardwert für dieses Attribut bereit. Sie müssen ihmindexer-google-cloudsearch
aber auch manuell hinzufügen.Metatags-Namen metatags.names = text
Optional. Durch Kommas getrennte Liste der Tags, die Attributen im Schema der entsprechenden Datenquelle zugeordnet sind. Weitere Informationen zum Einrichten von Apache Nutch für Meta-Tags
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>
Ö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 Dokumentinhalt 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
: Der extrahierte Textinhalt wird vom Indexierungs-Plug-in übertragen. Der Standardwert istraw
.
Schritt 4: Web-Crawling konfigurieren
Konfigurieren Sie vor dem Web-Crawling das Crawling so, dass es nur Informationen enthält, die Ihre Organisation in den Suchergebnissen verfügbar machen möchte. Dieser Abschnitt bietet eine entsprechende Übersicht. Weitere Informationen zum Einrichten eines Web-Crawlings finden Sie im Nutch-Tutorial.
Richten Sie Start-URLs ein.
Mit Start-URLs wird bestimmt, an welchem Punkt begonnen werden soll, Ihre Inhalte mit dem Web-Crawler von Apache Nutch zu erfassen. Die Start-URLs sollen es dem Web-Crawler ermöglichen, alle Inhalte zu erreichen, die Sie in einen bestimmten Crawl einbeziehen möchten. Dafür folgt der Crawler den Links. Start-URLs sind erforderlich.
So richten Sie Start-URLs ein:
Ändern Sie das Arbeitsverzeichnis in das Installationsverzeichnis für Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Erstellen Sie ein Verzeichnis für URLs:
$ mkdir urls
Erstellen Sie eine Datei mit dem Namen
seed.txt
und geben Sie darin die URLs an (jeweils eine pro Zeile).
Richten Sie Regeln für das Ein- und Ausschließen von Links ein.
Mit URL-Regeln für das Einschließen von Links 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 Einschließen von Links. 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 vom Web-Crawler nicht gecrawlt.
So richten Sie URL-Regeln für das Ein- und Ausschließen von Links ein:
Ändern Sie das Arbeitsverzeichnis in das Installationsverzeichnis für Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
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
Geben Sie reguläre Ausdrücke mit dem Präfix „+“ oder „-“ ein, um Muster für das Ein- bzw. Ausschließen von URLs oder Dateiendungen hinzuzufügen, 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) #+.
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 Befehlnutch index
übergeben werden. Sie führen dazu, dass vom Nutch Indexierungs-Modul binärer Inhalt in Base64 aufgenommen wird, wenn das Indexierungs-Plug-in aufgerufen wird. Das Skript „./bin/crawl“ verfügt standardmäßig nicht über diese Argumente.- Öffnen Sie das Skript
crawl
inapache-nutch-1.15/bin
. 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 ..."
- Öffnen Sie das Skript
Schritt 5: Web-Crawling und Inhaltsupload 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 befinden sich die erforderlichen Komponenten im lokalen Verzeichnis. 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 Protokollierung anzupassen oder eine ausführlichere Protokollierung zu erhalten.