Dieser Leitfaden richtet sich an Administratoren, die mit dem Google Cloud Search-Connector für kommagetrennte Werte (Comma-Separated Values, CSV) arbeiten und für das Herunterladen, Konfigurieren, Ausführen und Überwachen des Connectors verantwortlich sind.
In diesem Artikel finden Sie Anleitungen zu den folgenden Hauptaufgaben:
- Laden Sie die Software für den Cloud Search-CSV-Connector herunter.
- Konfigurieren Sie den Connector für eine bestimmte CSV-Datenquelle.
- Stellen Sie den Connector bereit und führen Sie ihn aus.
Um die Konzepte in diesem Dokument zu verstehen, sollten Sie mit Google Workspace, CSV-Dateien und Zugriffssteuerungslisten (Access Control Lists, ACLs) vertraut sein.
Übersicht über den Cloud Search-CSV-Connector
Der Cloud Search-CSV-Connector funktioniert mit allen Textdateien mit kommagetrennten Werten (CSV). In einer CSV-Datei werden tabellarische Daten gespeichert. Jede Zeile der Datei ist dabei ein Datensatz.
Der Connector extrahiert Zeilen aus einer CSV-Datei und indexiert sie mithilfe der Indexing API in Cloud Search. Nach der Indexierung können Zeilen über Cloud Search-Clients oder die Query API durchsucht werden. Der Connector unterstützt auch ACLs, um den Nutzerzugriff auf Inhalte zu steuern.
Sie können den Connector unter Linux oder Windows installieren. Vor dem Deployment benötigen Sie die folgenden Komponenten:
- Java JRE 1.8 ist auf dem Computer installiert, auf dem der Connector ausgeführt wird.
- Google Workspace-Informationen zum Herstellen von Verbindungen:
- Privater Google Workspace-Schlüssel, der die ID des Dienstkontos enthält.
- ID der Google Workspace-Datenquelle.
Normalerweise erhalten Sie diese Anmeldedaten vom Google Workspace-Administrator der Domain.
Deployment
So stellen Sie den Cloud Search-CSV-Connector bereit:
- Connector-Software installieren
- Connector-Konfiguration angeben
- Zugriff auf die Cloud Search-Datenquelle konfigurieren
- Den CSV-Dateizugriff konfigurieren
- Spaltennamen, eindeutige Schlüssel und Datum/Uhrzeit-Spalten festlegen
- Spalten für anklickbare URLs im Suchergebnis angeben
- Metadaten und Spaltenformate angeben
- Datendurchlauf planen
- ACL-Optionen angeben
1. SDK Installieren
Installieren Sie das SDK in Ihrem lokalen Maven-Repository.
Klonen Sie das SDK-Repository von GitHub.
$ git clone https://github.com/google-cloudsearch/connector-sdk.git $ cd connector-sdk/csv
Sehen Sie sich die ausgewählte Version an:
$ git checkout tags/v1-0.0.3
Erstellen Sie den Connector:
$ mvn package
Extrahieren und installieren Sie den Connector:
$ cp target/google-cloudsearch-csv-connector-v1-0.0.3.zip installation-dir $ cd installation-dir $ unzip google-cloudsearch-csv-connector-v1-0.0.3.zip $ cd google-cloudsearch-csv-connector-v1-0.0.3
2. Konfiguration des CSV-Connectors angeben
Sie steuern das Verhalten des Connectors über Parameter in seiner Konfigurationsdatei. Zu den konfigurierbaren Parametern gehören:
- Zugriff auf Datenquellen:
- Speicherort und Definitionen der CSV-Datei.
- Spalten mit eindeutigen IDs.
- Optionen für den Durchlauf und die Zugriffssteuerungsliste (Access Control List, ACL)
So erstellen Sie eine Konfigurationsdatei:
- Öffnen Sie einen Texteditor und geben Sie der Datei den Namen
connector-config.properties. - Fügen Sie Konfigurationsparameter als
key=value-Paare hinzu, wobei jedes Paar in einer neuen Zeile steht. Ein Beispiel für eine Konfigurationsdatei finden Sie unter Beispiel für eine Konfigurationsdatei.
Bewahren Sie die Konfigurationsdatei im selben Verzeichnis wie den Connector auf, um das Tracking zu vereinfachen. Damit der Connector die Datei erkennt, müssen Sie ihren Pfad in der Kommandozeile angeben. Andernfalls wird standardmäßig connector-config.properties in Ihrem lokalen Verzeichnis verwendet. Weitere Informationen finden Sie unter Connector ausführen.
3. Zugriff auf die Cloud Search-Datenquelle konfigurieren
In der Konfigurationsdatei müssen Parameter für den Zugriff auf die Cloud Search-Datenquelle angegeben werden. Sie benötigen die Datenquellen-ID, die Dienstkonto-ID und den Pfad zur privaten Schlüsseldatei des Dienstkontos.
| Einstellung | Parameter |
| ID der Datenquelle | api.sourceId=1234567890abcdef
Erforderlich. Die ID der Cloud Search-Quelle, die vom Google Workspace-Administrator eingerichtet wurde. |
| Pfad zum privaten Schlüssel des Dienstkontos | api.serviceAccountPrivateKeyFile=./PrivateKey.json
Erforderlich. Die Schlüsseldatei des Dienstkontos für den Zugriff des Connectors. |
| ID der Identitätsquelle | api.identitySourceId=x0987654321
Erforderlich, wenn externe Nutzer und Gruppen verwendet werden. Die ID der Identitätsquelle, die vom Google Workspace-Administrator eingerichtet wurde. |
4. Parameter der CSV-Datei konfigurieren
Ermitteln Sie den Pfad, das Format und die Codierung der Datei.
| Einstellung | Parameter |
| Pfad zur CSV-Datei | csv.filePath=./movie_content.csv
Erforderlich. Der Pfad zur Datei für die Indexierung. |
| Dateiformat | csv.format=DEFAULT
Das Format der Datei. Mögliche Werte stammen aus der Apache-Commons-CSV-Klasse CSVFormat. Zu den Formatwerten gehören: |
| Dateiformatmodifikator | csv.format.withMethod=value
Eine Änderung der Dateiverarbeitung in Cloud Search. Mögliche Methoden stammen aus der Apache-Commons-CSV-Klasse CSVFormat und beinhalten diejenigen, für die ein einzelnes Zeichen, ein String oder ein boolescher Wert genutzt wird. Wenn Sie beispielsweise ein Semikolon als Trennzeichen angeben möchten, verwenden Sie |
| Dateicodierungstyp | csv.fileEncoding=UTF-8
Der zu verwendende Java-Zeichensatz. Standardmäßig wird der Zeichensatz der Plattform verwendet. |
5. Zu indexierende Spaltennamen und Spalten mit eindeutigem Schlüssel festlegen
Geben Sie Spalteninformationen in der Konfigurationsdatei an.
| Einstellung | Parameter |
| Spalten für Indexierung | csv.csvColumns=movieId,movieTitle,description,actors,releaseDate,year,userratings...
Die zu indexierenden Spaltennamen aus der CSV-Datei. Standardmäßig wird die erste Zeile der CSV-Datei als Kopfzeile verwendet. Wenn |
| Eindeutige Schlüsselspalten | csv.uniqueKeyColumns=movieId
Spalten, die zum Generieren einer eindeutigen ID verwendet werden. Die Standardeinstellung ist der Hashcode des Eintrags. |
6. Spalten für anklickbare URLs im Suchergebnis angeben
Aktivieren Sie anklickbare URLs für Suchergebnisse.
| Einstellung | Parameter |
| URL-Format für Suchergebnisse | url.format=https://mymoviesite.com/movies/{0}
Erforderlich. Das Format, in dem die Ansichts-URL dargestellt wird. |
| URL-Parameter | url.columns=movieId
Erforderlich. Die CSV-Spaltennamen, deren Werte zum Generieren der Eintrags-URL verwendet werden. |
| Zu codierende URL-Parameter für Suchergebnisse | url.columnsToEscape=movieId
Optional. Die CSV-Spaltennamen, deren Werte in der URL codiert werden, damit eine gültige URL angezeigt wird. |
7. Metadaten, Spaltenformate und Suchqualität angeben
Sie können der Konfigurationsdatei Parameter hinzufügen, mit denen Folgendes angegeben wird:
Konfigurationsparameter für Metadaten
Mit diesen Parametern werden Spalten zum Befüllen von Elementmetadaten beschrieben.
| Einstellung | Parameter |
| Titel | itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=Gone with the Wind
Das Metadatenattribut für den Dokumenttitel. Der Standardwert ist ein leerer String. |
| URL | itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
Das Metadatenattribut für die Dokument-URL in den Suchergebnissen. |
| Zeitstempel bei Erstellung | itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17
Das Metadatenattribut für den Zeitstempel bei Dokumenterstellung. |
| Zeitpunkt der letzten Aktualisierung | itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
Das Metadatenattribut für den Zeitstempel der letzten Änderung am Dokument. |
| Dokumentsprache | itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=en-US
Die Inhaltssprache der indexierten Dokumente. |
| Typ des Schemaobjekts | itemMetadata.objectType.field=typeitemMetadata.objectType.defaultValue=movie
Der Objekttyp, der vom Connector verwendet wird, wie im Schema beschrieben. Der Connector indexiert keine strukturierten Daten, wenn dieses Attribut nicht angegeben ist. |
Datum/Uhrzeit-Formate
Mit diesem Parameter werden zusätzliche Datums- und Uhrzeitformate für das Parsen von Stringwerten in Datums- oder Datum/Uhrzeit-Felder angegeben.
| Einstellung | Parameter |
| Zusätzliche Datum/Uhrzeit-Formate | structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
Eine durch Semikolons getrennte Liste zusätzlicher java.time.format.DateTimeFormatter-Muster. Diese werden verwendet, wenn für Datums- oder Datum-Uhrzeit-Felder in den Metadaten oder im Schema Stringwerte geparst werden. Der Standardwert ist eine leere Liste. Die Formate RFC 3339 und RFC 1123 werden jedoch immer unterstützt.
|
Spaltenformate
Mit diesen Parametern wird angegeben, wie Spalten in der CSV-Datei geparst werden sollen.
| Einstellung | Parameter |
| Kopfzeile überspringen | csv.skipHeaderRecord=true
Ignoriere die erste Zeile. Der Standardwert ist "false". |
| Spalten mit mehreren Werten | csv.multiValueColumns=genre,actors
Spaltennamen mit mehreren Werten. |
| Trennzeichen für Spalten mit mehreren Werten | csv.multiValue.genre=;
Trennzeichen für Spalten mit mehreren Werten. Das Standardtrennzeichen ist ein Komma. |
Suchqualität
Der Connector verwendet eine Inhaltsvorlage zum Formatieren von Datensätzen. Das Titelfeld hat die höchste Priorität. Sie können anderen Feldern Prioritätsstufen zuweisen (hoch, mittel, niedrig).
| Einstellung | Parameter |
| Titel des Inhalts |
contentTemplate.csv.title=movieTitle
Der Titel des Inhalts ist das Feld mit der höchsten Suchqualität. |
| Hohe Suchqualität für Inhaltsfelder |
contentTemplate.csv.quality.high=actors
Inhaltsfelder mit einem hohen Wert für die Suchqualität. Der Standardwert ist ein leerer String. |
| Geringe Suchqualität für Inhaltsfelder |
contentTemplate.csv.quality.low=genre
Inhaltsfelder mit einem niedrigen Wert für die Suchqualität. Der Standardwert ist ein leerer String. |
| Mittlere Suchqualität für Inhaltsfelder |
contentTemplate.csv.quality.medium=description
Inhaltsfelder mit einem mittleren Wert für die Suchqualität. Der Standardwert ist ein leerer String. |
| Nicht festgelegte Inhaltsfelder |
contentTemplate.csv.unmappedColumnsMode=IGNORE
Die Vorgehensweise des Connectors bei nicht festgelegten Inhaltsfeldern. Gültige Werte sind:
Der Standardwert ist APPEND. |
8. Datendurchlauf planen
Der Durchlauf ist der Prozess, bei dem Inhalte ermittelt werden. Der Connector durchläuft CSV-Zeilen und indexiert sie mithilfe der Indexing API. Von einem CSV-Connector werden nur Durchläufe mit vollständiger Indexierung ausgeführt.
| Einstellung | Parameter |
| Durchlaufintervall | schedule.traversalIntervalSecs=7200
Intervall zwischen vollständigen Durchläufen in Sekunden. Der Standardwert ist 86.400 (ein Tag). |
| Durchlauf beim Start | schedule.performTraversalOnStart=false
Beim Start des Connectors wird ein Durchlauf durchgeführt, anstatt auf das Ablaufen des ersten Intervalls zu warten. Standardwert ist |
9. ACL-Optionen angeben
Der Connector verwendet ACLs, um den Zugriff zu steuern. Wenn Ihr Repository ACLs bereitstellt, laden Sie sie hoch. Konfigurieren Sie andernfalls Standard-ACLs. Setzen Sie defaultAcl.mode auf einen anderen Wert als none.
| Einstellung | Parameter |
| ACL-Modus | defaultAcl.mode=fallback
Erforderlich. Der Connector unterstützt nur den Fallback-Modus. |
| Standard-ACL-Name | defaultAcl.name=VIRTUAL_CONTAINER_FOR_CONNECTOR_1
Optional. Überschreibt den Namen des virtuellen Containers, der vom Connector für Standard-ACLs verwendet wird. Der Standardwert ist |
| Standardmäßige öffentliche ACL | defaultAcl.public=true
Legt für das gesamte Repository den Zugriff auf die Public Domain fest. Der Standardwert ist „false“. |
| Allgemeine ACL für Gruppen mit Leseberechtigung | defaultAcl.readers.groups=google:group1, group2
|
| Allgemeine ACL für Nutzer mit Leseberechtigung | defaultAcl.readers.users=user1, user2, google:user3
|
| Allgemeine ACL für Gruppen ohne Leseberechtigung | defaultAcl.denied.groups=group3
|
| Allgemeine ACL für Nutzer ohne Leseberechtigung | defaultAcl.denied.users=user4, user5
|
| Zugriff auf gesamte Domain | Wenn Sie festlegen möchten, dass jeder indexierte Datensatz für jeden Nutzer in der Domain öffentlich zugänglich sein soll, legen Sie für beide der folgenden Optionen die folgenden Werte fest:
|
| Allgemein festgelegte ACL | Wenn Sie eine gemeinsame ACL für jeden Datensatz definieren möchten, legen Sie die folgenden Parameter fest:
Es wird davon ausgegangen, dass Nutzer und Gruppen lokal definiert sind, sofern nicht das Präfix „ Der Standardnutzer oder die Standardgruppe ist ein leerer String. Geben Sie nur Nutzer- und Gruppenoptionen an, wenn Wenn |
Schemadefinition
Damit Abfragen von strukturierten Daten unterstützt werden, müssen Sie ein Schema für Ihre Datenquelle einrichten.
Nehmen wir als Beispiel eine CSV-Datei mit den folgenden Informationen zu Filmen:
- movieId
- movieTitle
- Beschreibung
- Jahr
- releaseDate
- actors (mehrere durch Komma (,) getrennte Werte)
- genre (mehrere Werte)
- Bewertungen
Auf Grundlage dieser Struktur können Sie das folgende Schema für Ihre Datenquelle definieren:
{
"objectDefinitions": [
{
"name": "movie",
"propertyDefinitions": [
{
"name": "actors",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"textPropertyOptions": {
"operatorOptions": {
"operatorName": "actor"
}
}
},
{
"name": "releaseDate",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": false,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "released",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
},
{
"name": "movieTitle",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": false,
"textPropertyOptions": {
"retrievalImportance": {
"importance": "HIGHEST"
},
"operatorOptions": {
"operatorName": "title"
}
}
},
{
"name": "genre",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"enumPropertyOptions": {
"operatorOptions": {
"operatorName": "genre"
},
"possibleValues": [
{
"stringValue": "Action"
},
{
"stringValue": "Documentary"
},
{
"stringValue": "Drama"
},
{
"stringValue": "Crime"
},
{
"stringValue": "Sci-fi"
}
]
}
},
{
"name": "userRating",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": true,
"integerPropertyOptions": {
"orderedRanking": "ASCENDING",
"maximumValue": "10",
"operatorOptions": {
"operatorName": "score",
"lessThanOperatorName": "scorebelow",
"greaterThanOperatorName": "scoreabove"
}
}
}
]
}
]
}
Beispiel: Konfigurationsdatei
Hier sehen Sie die Parameter (key=value-Paare), durch die das Verhalten eines Beispielconnectors definiert wird.
# data source access
api.sourceId=1234567890abcd
api.serviceAccountPrivateKeyFile=./PrivateKey.json
# CSV data structure
csv.filePath=./movie_content.csv
csv.csvColumns=movieId,movieTitle,description,releaseYear,genre,actors,ratings,releaseDate
csv.skipHeaderRecord=true
url.format=https://mymoviesite.com/movies/{0}
url.columns=movieId
csv.datetimeFormat.releaseDate=yyyy-mm-dd
csv.multiValueColumns=genre,actors
csv.multiValue.genre=;
contentTemplate.csv.title=movieTitle
# metadata structured data and content
itemMetadata.title.field=movieTitle
itemMetadata.createTime.field=releaseDate
itemMetadata.contentLanguage.defaultValue=en-US
itemMetadata.objectType.defaultValue=movie
contentTemplate.csv.quality.medium=description
contentTemplate.csv.unmappedColumnsMode=IGNORE
#ACLs
defaultAcl.mode=fallback
defaultAcl.public=true
Connector ausführen
So führen Sie den Connector über die Befehlszeile aus:
$ java -jar google-cloudsearch-csv-connector-v1-0.0.3.jar -Dconfig=my.config
Standardmäßig sind Connectorprotokolle in der normalen Ausgabe verfügbar. Sie können Protokolle erstellen und in Dateien speichern lassen, indem Sie logging.properties angeben.