Questa guida è destinata agli amministratori del connettore CSV (comma-separated values) di Google Cloud Search, ovvero a chiunque sia responsabile del download, della configurazione, dell'esecuzione e del monitoraggio del connettore.
Questa guida include istruzioni per eseguire le attività chiave relative al deployment del connettore CSV:
- Scaricare il software del connettore CSV di Google Cloud Search
- Configurare il connettore per l'utilizzo con un'origine dati CSV specifica
- Esegui il deployment del connettore ed eseguilo
Per comprendere i concetti descritti in questo documento, devi avere familiarità con le nozioni di base di Google Workspace, i file CSV e le liste di controllo degli accessi (ACL).
Panoramica del connettore CSV di Google Cloud Search
Il connettore CSV di Cloud Search funziona con qualsiasi file di testo con valori separati da virgole (CSV). Un file CSV memorizza dati tabellari e ogni riga del file è un record di dati.
Il connettore CSV di Google Cloud Search estrae singole righe da un file CSV e le indicizza in Cloud Search tramite l'API Indexing di Cloud Search. Una volta indicizzate correttamente, le singole righe dei file CSV sono ricercabili tramite i client di Cloud Search o l'API Cloud Search Query. Il connettore CSV supporta anche il controllo dell'accesso degli utenti ai contenuti nei risultati di ricerca tramite le ACL.
Il connettore CSV di Google Cloud Search può essere installato su Linux o Windows. Prima di eseguire il deployment del connettore CSV di Google Cloud Search, assicurati di disporre dei seguenti componenti richiesti:
- Java JRE 1.8 installato su un computer che esegue il connettore CSV di Google Cloud Search
Informazioni di Google Workspace necessarie per stabilire relazioni tra Google Cloud Search e l'origine dati:
- Chiave privata di Google Workspace (che contiene l'ID account di servizio)
- ID origine dati di Google Workspace
In genere, l'amministratore di Google Workspace per il dominio può fornirti queste credenziali.
Passi per il deployment
Per eseguire il deployment del connettore CSV di Google Cloud Search:
- Installare il software del connettore CSV di Google Cloud Search
- Specifica la configurazione del connettore CSV
- Configurare l'accesso all'origine dati Google Cloud Search
- Configurare l'accesso al file CSV
- Specifica i nomi delle colonne da indicizzare, le colonne delle chiavi univoche e le colonne di data e ora
- Specificare le colonne da utilizzare negli URL dei risultati di ricerca cliccabili
- Specificare le informazioni sui metadati e i formati delle colonne
- Pianificare l'attraversamento dei dati
- Specificare le opzioni dell'elenco di controllo dell'accesso (ACL)
1. Installa l'SDK
Installa l'SDK nel tuo repository Maven locale.
Clona il repository dell'SDK da GitHub.
$ git clone https://github.com/google-cloudsearch/connector-sdk.git $ cd connector-sdk/csv
Controlla la versione dell'SDK che ti interessa:
$ git checkout tags/v1-0.0.3
Crea il connettore:
$ mvn package
Copia il file ZIP del connettore nella directory di installazione locale:
$ 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. Specifica la configurazione del connettore CSV
In qualità di amministratore del connettore, controlli il comportamento e gli attributi del connettore CSV che definiscono i parametri nel file di configurazione del connettore. I parametri configurabili includono:
- Accesso a un'origine dati
- Posizione del file CSV
- Definizioni delle colonne CSV
- Colonna o colonne che definiscono un ID univoco
- Opzioni di attraversamento
- Opzioni ACL per limitare l'accesso ai dati
Affinché il connettore possa accedere correttamente a un file CSV e indicizzare i contenuti pertinenti, devi prima creare il file di configurazione.
Per creare un file di configurazione:
- Apri un editor di testo a tua scelta e assegna un nome al file di configurazione.
Aggiungi coppie chiave=valore ai contenuti del file come descritto nelle sezioni seguenti. - Salva e assegna un nome al file di configurazione.
Google consiglia di denominare il file di configurazioneconnector-config.properties
in modo che non siano necessari parametri della riga di comando aggiuntivi per eseguire il connettore.
Poiché puoi specificare il percorso del file di configurazione sulla riga di comando, non è necessaria una posizione standard del file. Tuttavia, mantieni il file di configurazione nella stessa directory del connettore per semplificare il monitoraggio e l'esecuzione del connettore.
Per assicurarti che il connettore riconosca il file di configurazione, specifica il percorso nella
riga di comando. In caso contrario, il connettore utilizza
connector-config.properties
nella directory locale come
nome file predefinito. Per informazioni su come specificare il percorso di configurazione nella
riga di comando, vedi Esegui il connettore CSV di Cloud Search.
3. Configurare l'accesso all'origine dati Google Cloud Search
I primi parametri che ogni file di configurazione deve specificare sono quelli necessari per accedere all'origine dati Cloud Search, come mostrato nella tabella seguente. In genere, per configurare l'accesso del connettore a Cloud Search, sono necessari l'ID origine dati, l'ID service account e il percorso del file della chiave privata del service account. I passaggi necessari per configurare un'origine dati sono descritti in Gestire le origini dati di terze parti
Impostazione | Parametro |
ID origine dati | api.sourceId=1234567890abcdef
Obbligatorio. L'ID origine Google Cloud Search configurato dall'amministratore di Google Workspace, come descritto in Gestire origini dati di terze parti. |
Percorso del file della chiave privata del service account | api.serviceAccountPrivateKeyFile=./PrivateKey.json
Obbligatorio. Il file della chiave del service account Google Cloud Search per l'accessibilità del connettore CSV di Google Cloud Search. |
ID origine identità | api.identitySourceId=x0987654321
Obbligatorio se utilizzi utenti e gruppi esterni. L'ID origine identità di Google Cloud Search configurato dall'amministratore di Google Workspace. |
4. Configurare i parametri del file CSV
Prima che il connettore possa attraversare un file CSV ed estrarre i dati per l'indicizzazione, devi identificare il percorso del file. Puoi anche specificare il formato del file e il tipo di codifica. Aggiungi i seguenti parametri per specificare le proprietà del file CSV nel file di configurazione.
Impostazione | Parametro |
Percorso del file CSV | csv.filePath=./movie_content.csv
Obbligatorio. Il percorso del file CSV a cui accedere ed estrarre i contenuti per l'indicizzazione. |
Formato file | csv.format=DEFAULT
Il formato del file. I valori possibili provengono dalla classe CSVFormat di Apache Commons CSV. I valori di formato includono: |
Modificatore del formato file | csv.format.withMethod=value
Una modifica al modo in cui Cloud Search gestisce il file. I metodi possibili provengono dalla classe CSVFormat di Apache Commons CSV e includono quelli che accettano un singolo carattere, una stringa o un valore booleano. Ad esempio, per specificare un punto e virgola come delimitatore, utilizza |
Tipo di codifica dei file | csv.fileEncoding=UTF-8
Il set di caratteri Java da utilizzare quando Cloud Search legge il file. Se non specificato, Cloud Search utilizza il set di caratteri predefinito della piattaforma. |
5. Specifica i nomi delle colonne da indicizzare e le colonne delle chiavi univoche
Affinché il connettore possa accedere ai file CSV e indicizzarli, devi fornire informazioni sulle definizioni delle colonne nel file di configurazione. Se il file di configurazione non contiene i parametri che specificano i nomi delle colonne da indicizzare e le colonne delle chiavi univoche, vengono utilizzati i valori predefiniti.
Impostazione | Parametro |
Colonne da indicizzare | csv.csvColumns=movieId,movieTitle,description,actors,releaseDate,year,userratings...
I nomi delle colonne da indicizzare dal file CSV. Se |
Colonne chiave univoche | csv.uniqueKeyColumns=movieId
Le colonne CSV i cui valori verranno utilizzati per generare l'ID univoco di ogni record. Se non specificato, l'hash del record CSV deve essere utilizzato come chiave univoca. Il valore predefinito è l'hashcode del record. |
6. Specificare le colonne da utilizzare negli URL dei risultati di ricerca selezionabili
Quando un utente esegue una ricerca utilizzando Google Cloud Search, viene visualizzata una pagina dei risultati che include URL cliccabili per ogni risultato. Per attivare questa funzionalità, devi aggiungere il parametro mostrato nella tabella seguente al file di configurazione.
Impostazione | Parametro |
Formato dell'URL dei risultati di ricerca | url.format=https://mymoviesite.com/movies/{0}
Obbligatorio. Il formato per creare l'URL di visualizzazione per i contenuti CSV. |
Parametri URL dei risultati di ricerca. | url.columns=movieId
Obbligatorio. I nomi delle colonne CSV i cui valori verranno utilizzati per generare l'URL di visualizzazione del record. |
Parametri URL dei risultati di ricerca da eseguire l'escape | url.columnsToEscape=movieId
(Facoltativo) I nomi delle colonne CSV i cui valori verranno sottoposti all'escape dell'URL per generare un URL di visualizzazione valido. |
7. Specifica le informazioni sui metadati, i formati delle colonne e la qualità della ricerca
Puoi aggiungere parametri al file di configurazione che specificano:
Parametri di configurazione dei metadati
Parametri di configurazione dei metadati descrive le colonne CSV utilizzate per compilare i metadati degli elementi. Se il file di configurazione non contiene questi parametri, vengono utilizzati i valori predefiniti. La tabella seguente mostra questi parametri.
Impostazione | Parametro |
Titolo | itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=Gone with the Wind
L'attributo dei metadati che contiene il valore corrispondente al titolo del documento. Il valore predefinito è una stringa vuota. |
URL | itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
L'attributo dei metadati che contiene il valore dell'URL del documento per i risultati di ricerca. |
Timestamp creazione | itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17
L'attributo dei metadati che contiene il valore del timestamp di creazione del documento. |
Ora dell'ultima modifica | itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
L'attributo dei metadati che contiene il valore del timestamp dell'ultima modifica del documento. |
Lingua del documento | itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=en-US
La lingua dei contenuti per i documenti da indicizzare. |
Tipo di oggetto di schema | itemMetadata.objectType.field=type itemMetadata.objectType.defaultValue=movie
Il tipo di oggetto utilizzato dal connettore, come definito nello schema. Se questa proprietà non è specificata, il connettore non indicizzerà alcun dato strutturato. |
Formati data/ora
I formati di data e ora specificano i formati previsti negli attributi dei metadati. Se il file di configurazione non contiene questo parametro, vengono utilizzati i valori predefiniti. La seguente tabella mostra questo parametro.
Impostazione | Parametro |
Altri formati di data e ora | structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
Un elenco separato da punti e virgola di pattern java.time.format.DateTimeFormatter aggiuntivi. I pattern vengono utilizzati durante l'analisi dei valori stringa per qualsiasi campo di data o data e ora nei metadati o nello schema. Il valore predefinito è un elenco vuoto, ma i formati RFC 3339 e RFC 1123 sono sempre supportati. |
Formati delle colonne
I formati delle colonne specificano le informazioni sulle colonne che devono far parte dei contenuti ricercabili. Se il file di configurazione non contiene questi parametri, vengono utilizzati i valori predefiniti. La tabella seguente mostra questi parametri.
Impostazione | Parametro |
Ignora intestazione | csv.skipHeaderRecord=true
Booleano. Ignora il record di intestazione (prima riga) nel file CSV. Se hai impostato |
Colonne multivalore | csv.multiValueColumns=genre,actors
I nomi delle colonne nel file CSV che contengono più valori. Il valore predefinito è una stringa vuota. |
Delimitatore per le colonne con più valori | csv.multiValue.genre=;
Il delimitatore per le colonne multivalore. Il delimitatore predefinito è una virgola. |
Qualità della ricerca
Il connettore CSV di Cloud Search consente la formattazione HTML automatica per i campi di dati. Il connettore definisce i campi di dati all'inizio dell'esecuzione del connettore e poi utilizza un modello di contenuti per formattare ogni record di dati prima di caricarlo su Cloud Search.
Il modello di contenuti definisce l'importanza di ogni valore del campo per la ricerca. Il campo del titolo è obbligatorio ed è definito come la priorità più alta. Puoi assegnare livelli di importanza della qualità della ricerca a tutti gli altri campi dei contenuti: alta, media o bassa. Qualsiasi campo dei contenuti non definito in una categoria specifica viene impostato su priorità bassa. La tabella seguente mostra questi parametri.
Impostazione | Parametro |
Titolo contenuti | contentTemplate.csv.title=movieTitle
Il titolo dei contenuti è il campo di qualità della ricerca più elevato. |
Qualità elevata della ricerca per i campi dei contenuti | contentTemplate.csv.quality.high=actors
Campi dei contenuti a cui è stato assegnato un valore di qualità della ricerca elevato. Il valore predefinito è una stringa vuota. |
Qualità della ricerca bassa per i campi dei contenuti | contentTemplate.csv.quality.low=genre
Campi dei contenuti a cui è stato assegnato un valore di qualità della ricerca basso. Il valore predefinito è una stringa vuota. |
Qualità della ricerca media per i campi dei contenuti | contentTemplate.csv.quality.medium=description
Campi dei contenuti a cui è stato assegnato un valore di qualità della ricerca medio. Il valore predefinito è una stringa vuota. |
Campi dei contenuti non specificati | contentTemplate.csv.unmappedColumnsMode=IGNORE
Come il connettore gestisce i campi dei contenuti non specificati. I valori validi sono:
|
8. Pianificare l'attraversamento dei dati
L'attraversamento è il processo del connettore per scoprire i contenuti dell'origine dati, in questo caso un file CSV. Quando viene eseguito, il connettore CSV attraversa le righe di un file CSV e indicizza ogni riga in Cloud Search tramite l'API Indexing.
L'attraversamento completo indicizza tutte le colonne del file. L'attraversamento incrementale indicizza solo le colonne aggiunte o modificate dall'attraversamento precedente. Il connettore CSV esegue solo attraversamenti completi. Non esegue attraversamenti incrementali.
I parametri di pianificazione determinano la frequenza con cui il connettore attende tra le traversals. Se il file di configurazione non contiene parametri di pianificazione, vengono utilizzati i valori predefiniti. La tabella seguente mostra questi parametri.
Impostazione | Parametro |
Attraversamento completo dopo un intervallo | schedule.traversalIntervalSecs=7200
Il connettore esegue un attraversamento completo dopo un intervallo specificato. Specifica l'intervallo tra le traversate in secondi. Il valore predefinito è 86400 (numero di secondi in un giorno). |
Attraversamento completo all'avvio del connettore | schedule.performTraversalOnStart=false
Il connettore esegue un attraversamento completo all'avvio, anziché attendere la scadenza del primo intervallo. Il valore predefinito è true. |
9. Specifica le opzioni dell'elenco di controllo dell'accesso (ACL)
Il connettore CSV di Google Cloud Search supporta le autorizzazioni tramite ACL per controllare l'accesso ai contenuti del file CSV nei risultati di ricerca. Sono disponibili più opzioni ACL per consentirti di proteggere l'accesso degli utenti ai record indicizzati.
Se il tuo repository ha informazioni ACL individuali associate a ogni documento, carica tutte le informazioni ACL per controllare l'accesso ai documenti in Cloud Search. Se il tuo repository fornisce informazioni ACL parziali o nulle, puoi fornire informazioni ACL predefinite nei seguenti parametri, che l'SDK fornisce al connettore.
Il connettore si basa sull'abilitazione degli ACL predefiniti nel file di configurazione. Per
attivare gli ACL predefiniti, imposta defaultAcl.mode
su una modalità diversa da none
e
configurala con defaultAcl.*
Impostazione | Parametro |
Modalità ACL | defaultAcl.mode=fallback
Obbligatorio. Il connettore CSV si basa sulla funzionalità ACL predefinito. Il connettore supporta solo la modalità di fallback. |
Nome ACL predefinito | defaultAcl.name=VIRTUAL_CONTAINER_FOR_CONNECTOR_1
(Facoltativo) Consente di sostituire il nome del contenitore virtuale utilizzato dal connettore per configurare gli ACL predefiniti. Il valore predefinito è "DEFAULT_ACL_VIRTUAL_CONTAINER". Potresti voler ignorare questo valore se più connettori indicizzano i contenuti nella stessa origine dati. |
ACL pubblico predefinito | defaultAcl.public=true
L'ACL predefinita utilizzata per l'intero repository è impostata sull'accesso al dominio pubblico. Il valore predefinito è false. |
Lettori del gruppo ACL comune | defaultAcl.readers.groups=google:group1, group2 |
Lettori ACL comuni | defaultAcl.readers.users=user1, user2, google:user3 |
Lettori del gruppo con ACL comuni negati | defaultAcl.denied.groups=group3 |
Lettori comuni con ACL negato | defaultAcl.denied.users=user4, user5 |
Accesso all'intero dominio | Per specificare che ogni record indicizzato sia accessibile pubblicamente a ogni utente del dominio, imposta entrambe le seguenti opzioni con i valori:
|
ACL comuni definiti | Per specificare un elenco di controllo degli accessi per ogni record del repository di dati, imposta tutti i seguenti valori dei parametri:
|
Definizione dello schema
Cloud Search consente l'indicizzazione e la pubblicazione di contenuti strutturati e non strutturati. Per supportare le query sui dati strutturati, devi configurare lo schema per l'origine dati.
Una volta definito, il connettore CSV può fare riferimento allo schema definito per creare richieste di indicizzazione. Per fornire un esempio illustrativo, prendiamo in considerazione un file CSV contenente informazioni sui film.
Supponiamo che il file CSV di input abbia i seguenti contenuti.
- movieId
- movieTitle
- descrizione
- anno
- releaseDate
- attori (più valori separati da virgole (,)).
- genere (più valori)
- valutazioni
In base alla struttura dei dati riportata sopra, puoi definire lo schema per un'origine dati in cui vuoi indicizzare i dati del file CSV.
{
"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"
}
}
}
]
}
]
}
File di configurazione di esempio
Il seguente file di configurazione di esempio mostra le coppie di parametri key=value
che definiscono il comportamento di un connettore di esempio.
# 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
Per descrizioni dettagliate di ogni parametro, consulta il riferimento ai parametri di configurazione.
Esegui il connettore CSV di Cloud Search
Per eseguire il connettore dalla riga di comando, digita questo comando:
$ java -jar google-cloudsearch-csv-connector-v1-0.0.3.jar -Dconfig=my.config
Per impostazione predefinita, i log del connettore sono disponibili nell'output standard. Puoi registrare i dati nei file
specificando logging.properties
.