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:
|
Software |
|
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:
- Privater Google Workspace-Schlüssel, der die Dienstkonto-ID enthält. Informationen zum Abrufen eines privaten Schlüssels finden Sie unter Zugriff auf die Google Cloud Search API konfigurieren.
- ID der Google Workspace-Datenquelle. Informationen dazu, wie Sie eine Datenquellen-ID abrufen, 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
Prüfen Sie die gewünschte Version des Indexierungs-Plug-ins:
$ git checkout tags/v1-0.0.5
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
.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 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
Ö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üssenindexer-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>
Ö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 istraw
.
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.
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:
Ä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 URLs an (jeweils eine URL pro Zeile).
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:
Ä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 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) #+.
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 Befehlnutch 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.crawl
-Script inapache-nutch-1.15/bin
öffnen.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.