A ogni connettore è associato un file di configurazione contenente i parametri utilizzati, ad esempio l'ID del repository. I parametri sono definiti come coppie chiave-valore, ad esempio
api.sourceId=1234567890abcdef
.
L'SDK Google Cloud Search contiene diversi parametri di configurazione forniti da Google utilizzati da diversi connettori. Dei parametri di configurazione forniti da Google, solo i parametri di accesso all'origine dati devono essere definiti nel file di configurazione. Non è necessario ridefinire i parametri forniti da Google nel file di configurazione, a meno che tu non voglia sostituire i valori predefiniti.
Questo riferimento descrive i parametri di configurazione forniti da Google.
Esempio di file di configurazione
L'esempio seguente mostra un file di configurazione delle identità con coppie chiave-valore di parametri.
# # Configuration file sample # api.sourceId=1234567890abcdef api.identitySourceId=0987654321lmnopq api.serviceAccountPrivateKeyFile= ./PrivateKey.json # # Traversal schedules # schedule.traversalIntervalSecs=7200 schedule.incrementalTraversalIntervalSecs=600 # # Default ACLs # defaultAcl.mode=fallback defaultAcl.public=true
Parametri impostati comunemente
In questa sezione sono elencati i parametri di configurazione comunemente impostati, obbligatori e facoltativi. Se non modifichi i valori dei parametri facoltativi, il connettore utilizza i valori predefiniti forniti dall'SDK.
Accesso all'origine dati
La seguente tabella elenca tutti i parametri necessari per comparire in un file di configurazione. I parametri utilizzati dipendono dal tipo di connettore che stai creando (connettore di contenuti o connettore di identità).
Impostazione | Parametro |
---|---|
ID origine dati | api.sourceId=1234567890abcdef
Questo parametro è richiesto da un connettore per identificare la località del repository. Puoi ottenere questo valore quando hai aggiunto un'origine dati alla ricerca. Questo parametro deve trovarsi nei file di configurazione del connettore. |
ID origine identità | api.identitySourceId=0987654321lmnopq
Questo parametro è obbligatorio per i connettori di identità per identificare la località di un'origine identità esterna. Hai ottenuto questo valore quando mappa le identità degli utenti in Cloud Search. Questo parametro deve essere presente in tutti i file di configurazione del connettore di identità. |
File di chiave privata dell'account di servizio | api.serviceAccountPrivateKeyFile=./PrivateKey.json
Questo parametro contiene la chiave privata necessaria per accedere al repository. Hai ottenuto questo valore quando hai configurato l'accesso all'API REST Google Cloud Search. Questo parametro deve essere presente in tutti i file di configurazione. |
ID account di servizio | api.serviceAccountId=123abcdef4567890
Questo parametro specifica l'ID account di servizio. Il valore predefinito della stringa vuota è consentito solo quando il file di configurazione specifica un parametro del file della chiave privata. Questo parametro è obbligatorio se il file di chiave privata non è una chiave JSON. |
ID account Google Workspace | api.customerId=123abcdef4567890
Questo parametro specifica l'ID account dell'account Google Workspace aziendale. Hai ottenuto questo valore quando mappa le identità degli utenti in Cloud Search. Questo parametro è obbligatorio durante la sincronizzazione degli utenti utilizzando un connettore di identità. |
URL radice | api.rootUrl=baseURLPath
Questo parametro specifica il percorso dell'URL di base del servizio di indicizzazione. Il valore predefinito di questo parametro è una stringa vuota che viene convertita in |
Pianificazioni di attraversamento
I parametri di pianificazione determinano la frequenza di attesa del connettore tra un attraversamento e l'altro.
Impostazione | Parametro |
---|---|
Attraversamento completo all'avvio del connettore | schedule.performTraversalOnStart=true|false
Il connettore esegue un attraversamento completo all'avvio, anziché attendere la scadenza del primo intervallo. Il valore predefinito è |
Attraversamento completo dopo un intervallo | schedule.traversalIntervalSecs=intervalInSeconds
Il connettore esegue un attraversamento completo dopo un intervallo specificato. Specifica l'intervallo tra i attraversamenti in secondi. Il valore predefinito è |
Esci dopo un singolo attraversamento | connector.runOnce=true|false
Il connettore esegue un attraversamento completo una volta, poi esce. Questo parametro deve essere impostato su |
Attraversamento incrementale dopo un intervallo | schedule.incrementalTraversalIntervalSecs=intervalInSeconds
Il connettore esegue un attraversamento incrementale dopo un intervallo specificato.
Specifica l'intervallo tra i attraversamenti in secondi. Il valore predefinito è |
Intervalli delle code di sondaggio programmati | schedule.pollQueueIntervalSecs=interval_in_seconds
L'intervallo tra gli intervalli pianificati delle code di sondaggio (in secondi). Viene utilizzato solo da un connettore trasversale elenco. Il valore predefinito è |
Elenchi di controllo di accesso
Il connettore controlla l'accesso agli elementi tramite gli ACL. Più parametri consentono di proteggere l'accesso degli utenti ai record indicizzati con ACL.
Se il repository dispone di singole informazioni ACL associate a ogni elemento, carica tutte le informazioni ACL per controllare l'accesso agli elementi in Cloud Search. Se il repository non fornisce informazioni sull'ACL parziali o assenti, puoi fornire informazioni predefinite sull'ACL nei seguenti parametri, forniti dall'SDK al connettore.
Impostazione | Parametro |
---|---|
Modalità ACL | defaultAcl.mode=mode
Determina quando applicare l'ACL predefinito. Valori validi:
La modalità predefinita è |
ACL pubblico predefinito | defaultAcl.public=true|false
L'ACL predefinito utilizzato per l'intero repository è impostato sull'accesso di dominio pubblico.
Il valore predefinito è |
Lettori comuni del gruppo ACL | defaultAcl.readers.groups=google:group1@mydomain.com,
group2 |
Lettori ACL comuni | defaultAcl.readers.users=user1, user2,
google:user3@mydomain.com |
Lettori di gruppi rifiutati ACL comuni | defaultAcl.denied.groups=group3 |
Lettori ACL comuni rifiutati | defaultAcl.denied.users=user4, user5 |
Accesso completo al dominio | Per specificare che ogni record indicizzato sia accessibile pubblicamente da ogni utente nel dominio, imposta entrambi i seguenti parametri con valori:
|
ACL comunemente definito | Per specificare un ACL per ogni record del repository di dati, imposta tutti i seguenti valori parametro:
|
Parametri di configurazione dei metadati
Alcuni metadati degli elementi sono configurabili. I connettori possono impostare campi di metadati configurabili durante l'indicizzazione. Se il connettore non imposta un campo, per l'impostazione del campo vengono utilizzati i parametri del file di configurazione.
Il file di configurazione ha una serie di parametri di configurazione di metadati denominati indicati da un suffisso .field
, ad esempio itemMetadata.title.field=movieTitle
. Se esiste un valore per questi parametri, viene utilizzato per configurare il campo dei metadati. Se non esiste un valore per il parametro dei metadati con nome, i metadati vengono configurati utilizzando un parametro con il suffisso .defaultValue
.
La tabella seguente mostra i parametri di configurazione dei metadati.
Impostazione | Parametro |
Titolo | itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=
Il titolo dell'articolo. Se title.field non è impostato su un valore, viene utilizzato il valore di
title.defaultValue .
|
URL del repository di codice sorgente | itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
L'URL dell'articolo utilizzato nei risultati di ricerca. Potresti impostare defaultValue in modo che contenga un URL per l'intero repository, ad esempio se il tuo repository è un file CSV e c'è un solo URL per ogni elemento. Se sourceRepositoryUrl.field non è impostato
su un valore, viene utilizzato il valore di sourceRepositoryUrl.defaultValue .
|
Nome container | itemMetadata.containerName.field=containerName
itemMetadata.containerName.defaultValue=myDefaultContainerName
Il nome del contenitore dell'elemento, ad esempio il nome di una directory o di una cartella del file system. Se containerName.field non è impostato su un valore, viene utilizzato il valore di containerName.defaultValue .
|
Tipo di oggetto | itemMetadata.objectType.field=type itemMetadata.objectType.defaultValue=
Il tipo di oggetto utilizzato dal connettore, come definito nello schema. Il connettore non indicizza alcun dato strutturato se questa proprietà non è specificata. Se objectType.field non è impostato su un valore, viene utilizzato il valore di
objectType.defaultValue .
|
Data creazione | itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17
Il timestamp di creazione del documento. Se createTime.field non è impostato su un valore, viene utilizzato
il valore di createTime.defaultValue .
|
Data aggiornamento | itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
Il timestamp dell'ultima modifica dell'articolo. Se updateTime.field non è impostato su
un valore, viene utilizzato il valore di updateTime.defaultValue .
|
Lingua dei contenuti | itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=
La lingua dei contenuti per i documenti indicizzati. Se contentLanguage.field non è impostato su un valore, viene utilizzato il valore di contentLanguage.defaultValue .
|
Tipo MIME | itemMetadata.mimeType.field=mimeType
itemMetadata.mimeType.defaultValue=
Il tipo MIME originale di ItemContent.content nel repository di codice sorgente. La lunghezza massima è di 256 caratteri. Se mimeType.field non è impostato su un valore, viene utilizzato il valore di
mimeType.defaultValue .
|
Metadati sulla qualità della ricerca | itemMetadata.searchQualityMetadata.quality.field=quality
itemMetadata.searchQualityMetadata.quality.defaultValue=
Un'indicazione della qualità dell'articolo, utilizzata per influenzare la qualità della ricerca. Il valore deve essere compreso tra 0,0 (qualità minima) e 1,0 (qualità massima). Il valore predefinito è 0,0. Se quality.field non è impostato su un valore, viene utilizzato il valore di
quality.defaultValue .
|
Hash | itemMetadata.hash.field=hash
itemMetadata.hash.defaultValue=f0fda58630310a6dd91a7d8f0a4ceda2
Valore di hashing fornito dal chiamante dell'API. Questa opzione può essere utilizzata con il metodo items.push per calcolare lo stato modificato. La lunghezza massima è di 2048 caratteri. Se hash.field non è impostato su un valore, viene utilizzato il valore di
hash.defaultValue .
|
Formati di data e ora
I formati data/ora specificano i formati previsti negli attributi dei metadati. Se il file di configurazione non contiene questo parametro, vengono utilizzati i valori predefiniti. La tabella seguente mostra questo parametro.
Impostazione | Parametro |
Altri formati di data/ora | structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
Un elenco separato da punto e virgola di pattern java.time.format.DateTimeFormatter aggiuntivi. I pattern vengono utilizzati durante l'analisi dei valori delle stringhe per qualsiasi campo di data o data-ora nei metadati o nello schema. Il valore predefinito è un elenco vuoto, ma i formati RFC 3339 e RFC 1123 sono sempre supportati.
|
Dati strutturati
L'API Cloud Search Indexing fornisce un servizio schema che puoi utilizzare per personalizzare il modo in cui Cloud Search indicizza e gestisce i tuoi dati. Se utilizzi uno schema di repository locale, devi specificare il nome dello schema locale dei dati strutturati.
Impostazione | Parametro |
---|---|
Nome schema locale | structuredData.localSchema=mySchemaName
Il nome dello schema viene letto dall'origine dati e utilizzato per i dati strutturati del repository. Il valore predefinito è una stringa vuota. |
Qualità dei contenuti e della ricerca
Per i repository che contengono contenuti basati su record o campi (ad esempio CRM, CVS o database), l'SDK consente la formattazione HTML automatica dei campi di dati. Il connettore definisce i campi dei dati all'inizio dell'esecuzione, quindi utilizza un modello di contenuti per formattare ogni record di dati prima di caricarlo in Cloud Search.
Il modello di contenuti definisce l'importanza di ogni valore di campo per la ricerca.
Il campo HTML <title>
è obbligatorio e definito come la priorità massima. Puoi designare i livelli di importanza della qualità della ricerca per tutti gli altri campi dei contenuti: alto, medio o basso. Per impostazione predefinita, tutti i campi di contenuti non definiti in una categoria specifica avranno priorità bassa.
Impostazione | Parametro |
---|---|
Titolo HTML dei contenuti | contentTemplate.templateName.title=myTitleField
Il titolo HTML dei contenuti e il campo della qualità di ricerca più elevata. Questo parametro è obbligatorio solo se utilizzi un modello di contenuti HTML. Il valore predefinito è una stringa vuota. |
Alta qualità della ricerca per i campi dei contenuti | contentTemplate.templateName.quality.high=hField1,hField2
Campi di contenuti a cui viene assegnata un'alta priorità di ricerca. Il valore predefinito è una stringa vuota. |
Qualità della ricerca media per i campi dei contenuti | contentTemplate.templateName.quality.medium=mField1,mField2
Campi di contenuti a cui è stata assegnata una priorità di ricerca media. Il valore predefinito è una stringa vuota. |
Bassa qualità della ricerca per i campi dei contenuti | contentTemplate.templateName.quality.low=lField1,lField2
Campi di contenuti a cui viene assegnata una bassa priorità di ricerca. Il valore predefinito è una stringa vuota. |
Campi di contenuti non specificati | contentTemplate.templateName.unmappedColumnsMode=value
Modalità di gestione da parte del connettore dei campi di contenuti non specificati. I valori validi sono:
|
Includi nomi dei campi nel modello HTML | contentTemplate.templateName.includeFieldName=true|false
Specifica se includere i nomi dei campi insieme ai dati dei campi nel modello HTML. Il valore predefinito è |
Impostazione inconsueta dei parametri
È raro che sia necessario impostare i parametri elencati in questa sezione. I valori predefiniti dei parametri sono impostati per garantire prestazioni ottimali. Google sconsiglia di impostare questi parametri su valori diversi dai valori predefiniti senza requisiti specifici all'interno del tuo repository.
Configurazione proxy
L'SDK consente di configurare il connettore in modo da utilizzare un proxy per le connessioni in uscita.
I parametri transport.proxy.hostname
e transport.proxy.port
sono necessari per abilitare il trasporto attraverso un proxy. Gli altri parametri potrebbero essere necessari se il proxy richiede l'autenticazione o funziona tramite il protocollo SOCKS anziché HTTP. Se transport.proxy.hostname
non è impostato, l'SDK non utilizzerà un proxy.
Impostazione | Parametro |
---|---|
Nome host | transport.proxy.hostname=hostname
Il nome host del server proxy. Questo parametro è obbligatorio se viene utilizzato un proxy. |
Porta | transport.proxy.port=port
Il numero di porta del server proxy. Questo parametro è obbligatorio se viene utilizzato un proxy. |
Tipo di proxy | transport.proxy.type=type
Il tipo di proxy. I valori validi sono:
Il valore predefinito è |
Nome utente | transport.proxy.username=username
Il nome utente da utilizzare durante la creazione di un token di autorizzazione proxy. Questo parametro è facoltativo e deve essere impostato solo se il proxy richiede l'autenticazione. |
Password | transport.proxy.password=password
La password da utilizzare durante la creazione di un token di autorizzazione proxy. Questo parametro è facoltativo e deve essere impostato solo se il proxy richiede l'autenticazione. |
Traslocatori
L'SDK consente di specificare più singoli trasversali per consentire gli attraversamenti paralleli di un repository di dati. I connettori del modello SDK utilizzano questa funzionalità.
Impostazione | Parametro |
---|---|
Dimensioni del pool di Thread | traverse.threadPoolSize=size
Numero di thread creati dal connettore per consentire l'elaborazione in parallelo. Un singolo iteratore recupera le operazioni in modo seriale (di solito oggetti RepositoryDoc), ma le chiamate API vengono elaborate in parallelo utilizzando questo numero di thread. Il valore predefinito è |
Dimensione partizione | traverse.partitionSize=batchSize
Numero di Il valore predefinito è |
Richieste di sondaggio traverser
Il nucleo della coda di indicizzazione di Cloud Search è una coda prioritaria contenente una voce per ogni elemento di cui è nota l'esistenza. Un connettore per le schede può richiedere di eseguire il polling degli elementi dall'API di indicizzazione. Una richiesta di sondaggio riceve le voci con priorità più alta dalla coda di indicizzazione.
I seguenti parametri vengono utilizzati dal modello di connettore con schede di SDK per definire i parametri di polling.
Impostazione | Parametro |
---|---|
Trasferimento repository | repository.traversers=t1, t2, t3, ...
Crea uno o più traverser singoli in cui t1, t2, t3,
... è il nome univoco di ciascuno. Ogni traverser denominato ha il proprio insieme di impostazioni,
identificate dal nome univoco dell'utente, come
|
Coda per il polling | traverser.pollRequest.queue=mySpecialQueue
Nomi in coda sottoposti a polling. Il valore predefinito è una stringa vuota (implica "default"). |
traverser.t1.pollRequest.queue=mySpecialQueue
Quando hai più traverser, imposta gli stati dell'elemento per ciascun trave (dove t1, rappresenta un mezzo di trasporto specifico). |
|
Comportamento del polling | traverser.pollRequest.limit=maxItems
Numero massimo di elementi da restituire da una richiesta di polling.
Il valore predefinito è |
traverser.t1.pollRequest.limit=limit
Quando hai più traverser, imposta gli stati dell'elemento per ciascun trave (dove t1, rappresenta un mezzo di trasporto specifico). |
|
Stato elemento | traverser.pollRequest.statuses=statuses
Gli stati dell'elemento specifico sottoposto al polling da questo traverser, dove statuses può essere qualsiasi combinazione di |
traverser.t1.pollRequest.statuses=statusesForThisTraverser
Quando hai più traversi, imposta gli stati dell'elemento per ciascun trave (dove t1, rappresenta un mezzo di trasporto specifico). | |
Carico host | traverser.hostload=threads
Numero massimo di thread paralleli attivi disponibili per il polling. Il valore predefinito è |
traverser.t1.hostload=threadsForThisTraverser
Quando hai più traversi, imposta gli stati dell'elemento per ciascun trave (dove t1, rappresenta un mezzo di trasporto specifico). |
|
Timeout | traverser.timeout=timeout
Valore di timeout per l'interruzione di questo tentativo di polling dell'attraversatore. Il valore predefinito è |
traverser.t1.timeout=timeoutForThisTraverser
Quando hai più traversi, imposta gli stati dell'elemento per ciascun trave (dove t1, rappresenta un mezzo di trasporto specifico). |
|
traverser.timeunit=timeoutUunit
Le unità di timeout. I valori validi sono |
|
traverser.t1.timeunit=timeoutUnit
Quando hai più traversi, imposta gli stati dell'elemento per ciascun trave (dove t1, rappresenta un mezzo di trasporto specifico). |
Nella maggior parte dei casi, un connettore che utilizza il modello di connettore con scheda di SDK richiede solo un singolo set di parametri per il polling. In alcuni casi, ad esempio, potresti dover definire più criteri di polling se l'algoritmo di trasferimento richiede di separare l'elaborazione degli elementi utilizzando code diverse.
In questo caso, hai la possibilità di definire più insiemi di parametri di polling. Inizia specificando i nomi dei set di parametri utilizzando repository.traversers
. Per ogni nome del traverser definito, fornisci il
file di configurazione con i parametri della tabella riportata sopra, sostituendo
t1
con il nome del traverser. Questo crea un insieme di parametri di polling per ogni traverser definito.
Checkpoint
Un checkpoint è utile per monitorare lo stato di un attraversamento incrementale.
Impostazione | Parametro |
---|---|
Directory dei checkpoint | connector.checkpointDirectory=/path/to/checkpoint
Specifica il percorso della directory locale da utilizzare per i checkpoint incrementali e full traversal. |
Caricamenti di contenuti
Il contenuto dell'elemento viene caricato in Cloud Search con l'elemento quando le dimensioni del contenuto non superano la soglia specificata. Se le dimensioni dei contenuti superano la soglia, i contenuti vengono caricati separatamente dai metadati e dai dati strutturati dell'elemento.
Impostazione | Parametro |
---|---|
Soglia contenuti | api.contentUploadThresholdBytes=bytes
La soglia per i contenuti che determina se vengono caricati "in linea" con l'elemento o se vengono caricati separatamente. Il valore predefinito è |
Container
Il modello di connettore completo utilizza un algoritmo che include il concetto di attivazione/disattivazione della coda di origine dati temporanea per il rilevamento dei record eliminati nel database. Ciò significa che, a ogni attraversamento completo, i record recuperati, che si trovano in una nuova coda, sostituiscono tutti i record Cloud Search esistenti indicizzati dall'attraversamento precedente, che si trovano in una vecchia coda.
Impostazione | Parametro |
---|---|
Tag container | traverse.queueTag=instance
Per eseguire più istanze del connettore in parallelo per indicizzare un repository di dati comune (su diversi repository di dati o parti separate di un repository di dati comune) senza interferire tra loro, assegna un tag nome container univoco a ogni esecuzione del connettore. Un tag univoco impedisce all'istanza di un connettore di eliminare i record di un altro utente. Il tag viene aggiunto all'ID della coda di attivazione/disattivazione del connettore Full Traversal. |
Disabilita rilevamento eliminazione | traverse.useQueues=true|false
Indica se il connettore utilizza la logica di attivazione/disattivazione della coda per il rilevamento dell'eliminazione. Il valore predefinito è Nota: questo parametro di configurazione è applicabile solo ai connettori che implementano il modello |
Criterio batch
L'SDK supporta un criterio batch che ti consente di eseguire le seguenti azioni:
- Richieste batch
- Specifica il numero di richieste in una coda batch
- Gestisci batch in esecuzione contemporaneamente
- Svuota le richieste in batch
L'SDK raggruppa le richieste del connettore per accelerare la velocità effettiva durante i caricamenti. Il trigger dell'SDK per il caricamento di un batch di richieste può essere determinato dal numero di richieste o dal timeout, a seconda dell'evento che si verifica per primo. Ad esempio, se il tempo di ritardo del batch è scaduto senza aver raggiunto la dimensione del batch, o se il numero di elementi del batch viene raggiunto prima della scadenza del tempo di ritardo, viene attivato il caricamento batch.
Impostazione | Parametro |
---|---|
Richieste batch | batch.batchSize
Richieste batch insieme. Il valore predefinito è |
Numero di richieste in una coda batch | batch.maxQueueLength=maxQueueLength
Numero massimo di richieste in una coda batch per l'esecuzione.
Il valore predefinito è |
Batch in esecuzione contemporaneamente | batch.maxActiveBatches=maxActiveBatches
Numero di batch consentiti in esecuzione contemporaneamente.
Il valore predefinito è |
Svuota automaticamente le richieste in batch | batch.maxBatchDelaySeconds=maxBatchDelay
Numero di secondi di attesa prima che le richieste in batch vengano cancellate automaticamente. Il valore predefinito è |
Svuota le richieste in batch all'arresto | batch.flushOnShutdown=true|false
Svuota le richieste in batch durante l'arresto del servizio.
Il valore predefinito è |
Gestori delle eccezioni
I parametri dei gestori delle eccezioni determinano il modo in cui il traverser procede dopo che ha riscontrato un'eccezione.
Impostazione | Parametro |
---|---|
Istruzioni del traverser in caso di errore | traverse.exceptionHandler=exceptions
Come procedere il traverser dopo aver lanciato un'eccezione. I valori validi sono:
|
Tempo di attesa tra le eccezioni | abortExceptionHander.backoffMilliSeconds=backoff
Tempo di backoff in millisecondi di attesa tra le eccezioni del gestore rilevate
(in genere utilizzato durante il trasferimento di un repository). Il valore predefinito è |