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:
<ph type="x-smartling-placeholder">
|
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.
Vorbereitung
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 Konfigurieren Sie den Zugriff auf die Google Cloud Search API.
- ID der Google Workspace-Datenquelle. Informationen zum Abrufen einer Datenquellen-ID finden Sie unter Fügen Sie eine Datenquelle für die Suche hinzu.
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. Diese sind 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 die
Das Plug-in überträgt Daten in die Cloud Search API, defaultAcl.*
und batch.*
. Sie können auch konfigurieren, wie das Indexierungs-Plug-in Metadaten und strukturierte Daten füllt.
Beschreibungen dieser Parameter finden Sie unter Von Google bereitgestellte Connector-Parameter.
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:
- index-basic
- Index-Mehr
- indexer-google-cloudsearch
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 Eigenschaften im das Schema der entsprechenden Datenquelle an. Weitere Informationen zum Einrichten von Apache Nutch für Meta-Tags finden Sie unter Nutch-parse-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 <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
Konfigurieren Sie vor dem Web-Crawling das Crawling so, dass es nur Informationen enthält, die Ihre Organisation in der Suche verfügbar machen möchte. Ergebnisse. Dieser Abschnitt bietet einen Überblick: Weitere Informationen zur Einrichtung eines Web-Crawlings finden Sie in der Nutch-Tutorial
Richten Sie Start-URLs ein.
Über die Start-URLs wird gesteuert, wo der Apache Nutch-Web-Crawler Inhalte. Über die Start-URLs sollte der Web-Crawler auf alle Inhalte zugreifen können, auf die Sie indem Sie den Links folgen. 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 gleicht URLs mit dem URL-Regeln zu befolgen. 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, legt der Web-Crawler nicht gecrawlt wird.
So richten Sie URL-Regeln für das Ein- und Ausschließen von Links ein:
Ändern Sie das Arbeitsverzeichnis in das Nutch-Installationsverzeichnis:
$ 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 „+“ ein oder „-“ Präfix für URL-Muster und -Erweiterungen, denen Sie folgen bzw. nicht folgen möchten, wie in den folgenden Beispielen. 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 „-addBinaryContent -base64
“ Argumente, die annutch index
übergeben werden sollen . Diese Argumente teilen dem Nutch Indexierunger-Modul mit, dass es binären Inhalt einbindet in Base64, wenn das Indexierungs-Plug-in aufgerufen wird. Das ./bin/crawl-Skript enthält keine diese Argumente standardmäßig.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 auf
im lokalen Modus. Verwenden Sie die Skripts von ./bin
, um einen Crawling-Job auszuführen oder
auf die einzelnen Nutch-Befehle.
Im folgenden Beispiel wird davon ausgegangen, dass sich die erforderlichen Komponenten in der 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. Bis
die Protokollierungsausgabe leiten oder für eine ausführlichere Protokollierung bearbeiten
conf/log4j.properties