Dieser Leitfaden richtet sich an Google Cloud Search-CSV (kommagetrennte Werte) Connector-Administratoren, d. h. alle, die für Downloads, Konfigurieren, Ausführen und Überwachen des Connectors.
Dieses Handbuch enthält Anweisungen zur Durchführung wichtiger Aufgaben im Zusammenhang mit CSV Connector-Bereitstellung:
- Laden Sie die CSV-Connector-Software von Google Cloud Search herunter.
- Connector für die Verwendung mit einer bestimmten CSV-Datenquelle konfigurieren
- Connector bereitstellen und ausführen
Um die Konzepte in diesem Dokument zu verstehen, sollten Sie mit den Grundlagen von Google Workspace, CSV-Dateien und Access Control Lists (ACLs)
Übersicht über den CSV-Connector von Google Cloud Search
Der CSV-Connector für Cloud Search kann mit jedem Text mit durch Kommas getrennten Werten (CSV) verwendet werden -Datei. Eine CSV-Datei speichert tabellarische Daten, wobei jede Zeile der Datei Datensatz.
Der CSV-Connector von Google Cloud Search extrahiert einzelne Zeilen aus einer CSV-Datei und indexiert sie über die Cloud Search API (Indexing API) in Cloud Search. Einmal Indexierung abgeschlossen ist, können einzelne Zeilen aus CSV-Dateien über Cloud Search-Clients oder der Query API von Cloud Search. Der CSV-Connector die Kontrolle über die auf Inhalte in den Suchergebnissen zugreifen, indem Sie ACLs.
Der CSV-Connector von Google Cloud Search kann unter Linux oder Windows installiert werden. Vorher stellen Sie sicher, dass Sie die folgenden erforderlichen Komponenten:
- Java JRE 1.8, installiert auf einem Computer, auf dem die CSV-Datei von Google Cloud Search ausgeführt wird Connector
Google Workspace-Informationen, die erforderlich sind, um Beziehungen zwischen Google Cloud Search und die Datenquelle:
- Privater Google Workspace-Schlüssel (enthält die Dienstkonto-ID)
- ID der Google Workspace-Datenquelle
In der Regel erhalten Sie vom Google Workspace-Administrator für die Domain folgende Informationen: diese Anmeldedaten für Sie.
Deployment
So stellen Sie den CSV-Connector für Google Cloud Search bereit:
- Die CSV-Connector-Software von Google Cloud Search installieren
- Konfiguration des CSV-Connectors festlegen
- Zugriff auf die Google Cloud Search-Datenquelle konfigurieren
- CSV-Dateizugriff konfigurieren
- Zu indexierende Spaltennamen, Spalten mit eindeutigem Schlüssel und Datum/Uhrzeit-Spalten angeben
- Spalten angeben, die in anklickbaren Suchergebnis-URLs verwendet werden sollen
- Metadateninformationen und Spaltenformate angeben
- Datendurchlauf planen
- Optionen für ACLs (Access Control List) festlegen
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
Prüfen Sie die gewünschte SDK-Version:
$ git checkout tags/v1-0.0.3
Erstellen Sie den Connector:
$ mvn package
Kopieren Sie die ZIP-Datei des Connectors in Ihr lokales Installationsverzeichnis:
$ 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
Als Connector-Administrator steuern Sie das Verhalten und Attribute, die Parameter in der Konfigurationsdatei des Connectors definieren. Zu den konfigurierbaren Parametern gehören:
- Zugriff auf eine Datenquelle
- Speicherort der CSV-Datei
- CSV-Spaltendefinitionen
- Spalte(n), die eine eindeutige ID definieren
- Durchlaufoptionen
- ACL-Optionen zum Einschränken des Datenzugriffs
Damit der Connector ordnungsgemäß auf eine CSV-Datei zugreifen und den relevanten Inhalt indexieren kann, müssen Sie zuerst die Konfigurationsdatei erstellen.
So erstellen Sie eine Konfigurationsdatei:
- Öffnen Sie einen Texteditor Ihrer Wahl und geben Sie der Konfigurationsdatei einen Namen.
Fügen Sie dem Dateiinhalt key=value-Paare (Schlüssel/Wert-Paare) hinzu, wie im Folgenden beschrieben. . - Speichern Sie die Konfigurationsdatei und benennen Sie sie.
Google empfiehlt, dass Sie die Konfigurationsdatei benennenconnector-config.properties
, sodass keine zusätzlichen Befehlszeilenparameter die zum Ausführen des Connectors erforderlich sind.
Da Sie den Pfad zur Konfigurationsdatei in der Befehlszeile angeben können, Standarddateispeicherort ist nicht erforderlich. Behalten Sie die Konfigurationsdatei im selben Verzeichnis wie der Connector, um das Tracking und die Ausführung des Connector.
Damit der Connector die Konfigurationsdatei erkennt, geben Sie ihren Pfad unter
in die Befehlszeile ein. Andernfalls verwendet der Connector
connector-config.properties
in Ihrem lokalen Verzeichnis als
Standarddateiname. Informationen zum Angeben des Konfigurationspfads
Informationen zur Befehlszeile finden Sie unter Cloud Search-CSV-Connector ausführen.
3. Zugriff auf die Google Cloud Search-Datenquelle konfigurieren
Die ersten Parameter, die in jeder Konfigurationsdatei angegeben werden müssen, sind die die für den Zugriff auf die Cloud Search-Datenquelle erforderlich sind. . Normalerweise benötigen Sie die Datenquellen-ID, die Dienstkonto-ID und Pfad zur privaten Schlüsseldatei des Dienstkontos, um den für den Zugriff des Connectors auf Cloud Search. Erforderliche Schritte zum Einrichten einer Datenquelle beschrieben in Datenquellen von Drittanbietern verwalten
Einstellung | Parameter |
Datenquellen-ID | api.sourceId=1234567890abcdef
Erforderlich. Die ID der vom Google Workspace-Administrator eingerichteten Google Cloud Search-Quelle, wie unter Drittanbieter-Datenquellen verwalten beschrieben. |
Pfad zur privaten Schlüsseldatei des Dienstkontos | api.serviceAccountPrivateKeyFile=./PrivateKey.json
Erforderlich. Die Schlüsseldatei des Google Cloud Search-Dienstkontos für den Zugriff auf den CSV-Connector von Google Cloud Search. |
ID der Identitätsquelle | api.identitySourceId=x0987654321
Erforderlich, wenn externe Nutzer und Gruppen verwendet werden. Die ID der Google Cloud Search-Identitätsquelle, die vom Google Workspace-Administrator eingerichtet wurde. |
4. Parameter der CSV-Datei konfigurieren
Bevor der Connector eine CSV-Datei durchlaufen und Daten daraus extrahieren kann müssen Sie den Pfad zur Datei angeben. Sie können auch das Dateiformat und die Art der Dateicodierung angeben. Fügen Sie die folgenden Parameter hinzu, um die Eigenschaften der CSV-Datei in der Konfigurationsdatei anzugeben.
Einstellung | Parameter |
Pfad zur CSV-Datei | csv.filePath=./movie_content.csv
Erforderlich. Der Pfad zur CSV-Datei, auf die zugegriffen werden soll und die Inhalte für die Indexierung extrahiert werden sollen. |
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 an der Verarbeitung der Datei in Cloud Search. Mögliche Methoden stammen aus der Apache Commons CSV-Klasse CSVFormat und beinhalten Methoden, die ein einzelnes Zeichen, einen String oder einen booleschen Wert annehmen. Wenn Sie beispielsweise ein Semikolon als Trennzeichen angeben möchten, verwenden Sie |
Dateicodierungstyp | csv.fileEncoding=UTF-8
Der Java-Zeichensatz, der verwendet wird, wenn Cloud Search die Datei liest. Wenn keine Angabe erfolgt, gilt Folgendes: In Cloud Search wird der Standardzeichensatz der Plattform verwendet. |
5. Zu indexierende Spaltennamen und Spalten mit eindeutigem Schlüssel angeben
Damit der Connector auf CSV-Dateien zugreifen und diese indexieren kann, müssen Sie Informationen zu Spaltendefinitionen in der Konfigurationsdatei. Wenn die die Konfigurationsdatei nicht die Parameter enthält, die die Spaltennamen festlegen. und Spalten mit eindeutigen Schlüsseln verwenden, werden Standardwerte verwendet.
Einstellung | Parameter |
Spalten für Indexierung | csv.csvColumns=movieId,movieTitle,description,actors,releaseDate,year,userratings...
Die aus der CSV-Datei zu indexierenden Spaltennamen. Wenn |
Eindeutige Schlüsselspalten | csv.uniqueKeyColumns=movieId
Die CSV-Spalten, deren Werte zum Generieren der eindeutigen ID jedes Datensatzes verwendet werden. Wenn nicht angegeben, sollte der Hash des CSV-Eintrags als eindeutiger Schlüssel verwendet werden. Der Standardwert ist der Hashcode des Eintrags. |
6. Spalten angeben, die in anklickbaren Suchergebnis-URLs verwendet werden sollen
Wenn ein Nutzer mit Google Cloud Search sucht, reagiert er mit einem Ergebnis. Seite mit anklickbaren URLs für jedes Ergebnis. Um diese Funktion zu aktivieren, muss der in der folgenden Tabelle angegebene Parameter zur Konfigurationsdatei hinzugefügt werden.
Einstellung | Parameter |
Format der Suchergebnis-URL | url.format=https://mymoviesite.com/movies/{0}
Erforderlich. Das Format, in dem eine Ansichts-URL für CSV-Inhalte erstellt wird. |
URL-Parameter für Suchergebnisse. | url.columns=movieId
Erforderlich. Die CSV-Spaltennamen, deren Werte zum Generieren der Ansichts-URL des Eintrags verwendet werden. |
URL-Parameter für Suchergebnisse, die maskiert werden sollen | url.columnsToEscape=movieId
Optional. Die CSV-Spaltennamen, deren Werte mit URL-Escape-Zeichen versehen werden, um eine gültige Ansichts-URL zu generieren. |
7. Metadateninformationen, Spaltenformate und Suchqualität angeben
Sie können der Konfigurationsdatei Parameter hinzufügen, die Folgendes angeben:
Konfigurationsparameter für Metadaten
Konfigurationsparameter für Metadaten beschreiben die CSV-Spalten, die zum Ausfüllen verwendet werden. Objektmetadaten. Wenn die Konfigurationsdatei diese Parameter nicht enthält, werden Standardwerte verwendet. Die folgende Tabelle zeigt diese Parameter.
Einstellung | Parameter |
Titel | itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=Gone with the Wind
Das Metadatenattribut, das den Wert enthält, der dem Dokumenttitel entspricht. Der Standardwert ist ein leerer String. |
URL | itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
Das Metadatenattribut, das den Wert für die Dokument-URL für Suchergebnisse enthält. |
Zeitstempel der Erstellung | itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17
Das Metadatenattribut, das den Wert für den Zeitstempel der Dokumenterstellung enthält. |
Zeitpunkt der letzten Aktualisierung | itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
Das Metadatenattribut, das den Wert für den Zeitstempel der letzten Änderung für das Dokument enthält. |
Dokumentsprache | itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=en-US
Die Inhaltssprache der indexierten Dokumente. |
Schemaobjekttyp | itemMetadata.objectType.field=type itemMetadata.objectType.defaultValue=movie
Der Objekttyp, der vom Connector verwendet wird, wie in den Schema. Der Connector indexiert keine strukturierten Daten, wenn diese Eigenschaft nicht angegeben ist. |
Datums-/Uhrzeitformate
Datum/Uhrzeit-Formate geben die in Metadatenattributen erwarteten Formate an. Wenn die Konfigurationsdatei diesen Parameter nicht enthält, werden Standardwerte verwendet. In der folgenden Tabelle sehen Sie diesen Parameter.
Einstellung | Parameter |
Zusätzliche Datum/Uhrzeit-Formate | structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
Eine durch Semikolons getrennte Liste zusätzlicher Muster des Typs java.time.format.DateTimeFormatter. Die Muster werden verwendet, wenn Stringwerte für Datums- oder Datum-Uhrzeitfelder in den Metadaten oder im Schema geparst werden. Der Standardwert ist eine leere Liste. Die Formate RFC 3339 und RFC 1123 werden jedoch immer unterstützt. |
Spaltenformate
Spaltenformate geben Informationen über die Spalte(n) an, die Teil von sein sollte(n). durchsuchbaren Inhalt. Wenn die Konfigurationsdatei diese werden Standardwerte verwendet. Die folgende Tabelle zeigt diese Parameter.
Einstellung | Parameter |
Kopfzeile überspringen | csv.skipHeaderRecord=true
Boolescher Wert. Ignorieren Sie den Header-Datensatz (erste Zeile) in der CSV-Datei. Wenn Sie |
Spalten mit mehreren Werten | csv.multiValueColumns=genre,actors
Die Spaltennamen in der CSV-Datei, die mehrere Werte enthalten. Der Standardwert ist ein leerer String. |
Trennzeichen für Spalten mit mehreren Werten | csv.multiValue.genre=;
Das Trennzeichen für die Spalten mit mehreren Werten. Das Standardtrennzeichen ist ein Komma. |
Suchqualität
Der CSV-Connector von Cloud Search ermöglicht die automatische HTML-Formatierung für Datenfelder. Die Datenfelder werden vom Connector zu Beginn der Connector-Ausführung definiert. und verwendet dann eine Inhaltsvorlage, um jeden Datensatz vor dem Hochladen zu formatieren. mit Cloud Search.
In der Inhaltsvorlage wird die Wichtigkeit jedes Feldwerts für die Suche definiert. Das Titelfeld ist erforderlich und hat die höchste Priorität. Sie können Legen Sie für alle anderen Inhaltsfelder die Wichtigkeitsstufen der Suchqualität fest: hoch, mittel oder niedrig. Jedes Inhaltsfeld, das nicht in einer bestimmten Kategorie definiert ist hat standardmäßig eine niedrige Priorität. Die folgende Tabelle zeigt diese Parameter.
Einstellung | Parameter |
Titel des Inhalts | contentTemplate.csv.title=movieTitle
Der Inhaltstitel 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. |
Niedrige 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 angegebene Inhaltsfelder | contentTemplate.csv.unmappedColumnsMode=IGNORE
Die Verarbeitung nicht angegebener Inhaltsfelder durch den Connector. Gültige Werte sind:
|
8. Datendurchlauf planen
Der Durchlauf ist der Vorgang des Connectors, um Inhalte in den Daten zu finden in diesem Fall eine CSV-Datei. Während der CSV-Connector ausgeführt wird, eine CSV-Datei erstellen und jede Zeile über die Indexierung der API erstellen.
Bei einem Durchlauf mit vollständiger Indexierung (Full Traversal) werden alle Spalten in der Datei indexiert. Beim inkrementellen Durchlauf werden nur Spalten indexiert, die seit dem vorherigen Durchlauf hinzugefügt oder geändert wurden. Der CSV-Connector führt nur Durchläufe mit vollständiger Indexierung durch. Es werden keine Durchläufe mit Teilindexierung durchgeführt.
Die Planungsparameter bestimmen, wie oft der Connector zwischen Durchläufe. Wenn die Konfigurationsdatei keine Planungsparameter enthält, werden Standardwerte verwendet. Die folgende Tabelle zeigt diese Parameter.
Einstellung | Parameter |
Durchlauf mit vollständiger Indexierung nach Intervall | schedule.traversalIntervalSecs=7200
Der Connector führt nach einem bestimmten Intervall einen vollständigen Durchlauf durch. Geben Sie das Intervall zwischen den Durchläufen in Sekunden an. Der Standardwert ist 86.400, also die Anzahl der Sekunden eines Tages. |
Durchlauf mit vollständiger Indexierung beim Start des Connectors | schedule.performTraversalOnStart=false
Der Connector führt beim Start des Connectors einen vollständigen Durchlauf durch, anstatt auf den Ablauf des ersten Intervalls zu warten. Der Standardwert ist true. |
9. Optionen für Access Control List (ACL) festlegen
Der CSV-Connector von Google Cloud Search unterstützt Berechtigungen über ACLs, Zugriff auf den Inhalt der CSV-Datei in den Suchergebnissen. Es gibt mehrere ACLs Optionen, mit denen Sie den Nutzerzugriff auf indexierte Datensätze schützen können.
Wenn in Ihrem Repository individuelle ACL-Informationen zu jedem Dokument vorliegen, Sie laden alle ACL-Informationen hoch, um den Dokumentzugriff in Cloud Search zu steuern. Wenn Ihr Repository unvollständige oder keine ACL-Informationen bereitstellt, können Sie Standard- ACL-Informationen in den folgenden Parametern, die das SDK dem Connector.
Für den Connector müssen Standard-ACLs in der Konfigurationsdatei aktiviert sein. Bis
Standard-ACLs aktivieren, defaultAcl.mode
auf einen anderen Modus als none
setzen und
mit defaultAcl.*
konfigurieren
Einstellung | Parameter |
ACL-Modus | defaultAcl.mode=fallback
Erforderlich. Für CSV-Connectors sind die Standard-ACL-Funktionen erforderlich. Connector unterstützt nur den Fallback-Modus. |
Standard-ACL-Name | defaultAcl.name=VIRTUAL_CONTAINER_FOR_CONNECTOR_1
Optional. Ermöglicht das Überschreiben des Namens des virtuellen Containers, der vom Connector zum Einrichten von Standard-ACLs verwendet wird. Der Standardwert ist "DEFAULT_ACL_VIRTUAL_CONTAINER". Sie können diesen Wert überschreiben, wenn Inhalte in derselben Datenquelle von mehreren Connectors indexiert werden. |
Standardmäßige öffentliche ACL | defaultAcl.public=true
Als Standard-ACL für das gesamte Repository ist der Zugriff auf die öffentliche Domain festgelegt. 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 | Um anzugeben, dass jeder indexierte Datensatz für jeden Nutzer in der Domain öffentlich zugänglich sein soll, legen Sie die beiden folgenden Optionen mit Werten fest:
|
Allgemeine ACL | Um eine ACL für jeden Datensatz des Datenarchivs anzugeben, legen Sie alle folgenden Parameterwerte fest:
|
Schemadefinition
Mit Cloud Search können strukturierte und unstrukturierte Inhalte indexiert und bereitgestellt werden. Um Abfragen von strukturierten Daten für Ihre Daten unterstützen zu können, müssen Sie Richten Sie ein Schema für die Datenquelle ein.
Nach der Definition kann der CSV-Connector auf das definierte Schema verweisen, um Indexierungsanfragen zu erstellen. Nehmen wir als Beispiel eine CSV-Datei, die Informationen zu Filmen.
Angenommen, die Eingabe-CSV-Datei enthält folgenden Inhalt.
- movieId
- movieTitle
- Beschreibung
- Jahr
- releaseDate
- Schauspieler (mehrere durch Komma (,) getrennte Werte)
- genre (mehrere Werte)
- Bewertungen
Basierend auf der obigen Datenstruktur können Sie das Schema für eine Datenquelle definieren unter die Daten aus der CSV-Datei indexieren sollen.
{
"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
Die folgende Beispielkonfigurationsdatei enthält die Parameter key=value
-Paare
die das Verhalten eines Beispiel-Connectors definieren.
# 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
Ausführliche Beschreibungen der einzelnen Parameter finden Sie unter den Konfigurationsparametern Referenz.
Cloud Search-CSV-Connector ausführen
Geben Sie den folgenden Befehl ein, um den Connector über die Befehlszeile auszuführen:
$ java -jar google-cloudsearch-csv-connector-v1-0.0.3.jar -Dconfig=my.config
Connector-Protokolle sind standardmäßig in der Standardausgabe verfügbar. Sie können in Dateien protokollieren
durch Angabe von logging.properties
.