A ogni connettore è associato un file di configurazione contenente i parametri utilizzati dal connettore,
come l'ID del repository. I parametri sono definiti come coppie chiave/valore, come
api.sourceId=1234567890abcdef
.
L'SDK di Google Cloud Search contiene diverse configurazioni fornite da Google utilizzati dai vari connettori. Dei parametri di configurazione forniti da Google, devi definire nel tuo account solo i parametri di accesso all'origine dati di configurazione del deployment. Non è necessario ridefinire i parametri forniti da Google in del 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 dell'identità con coppie chiave-valore dei 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 comunemente impostati
Questa sezione elenca i parametri di configurazione obbligatori e facoltativi comunemente impostati. In caso contrario modificare i valori dei parametri facoltativi, il connettore utilizza i valori predefiniti forniti dall'SDK.
Accesso a origine dati
La tabella seguente elenca tutti i parametri che devono essere visualizzati in una configurazione . I parametri da utilizzare 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 del repository. Questo valore viene ottenuto quando aggiunto un'origine dati per la ricerca. Questo parametro deve trovarsi nei file di configurazione del connettore. |
ID origine identità | api.identitySourceId=0987654321lmnopq
Questo parametro è richiesto dai connettori di identità per identificare la posizione di un'origine identità esterna. Hai ottenuto questo valore mappare 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 accesso configurato al REST di Google Cloud Search tramite Google Cloud. Questo parametro deve essere presente in tutti i file di configurazione. |
ID account di servizio | api.serviceAccountId=123abcdef4567890
Questo parametro specifica l'account di servizio ID. Il valore predefinito della stringa vuota è consentito solo se il file di configurazione specifica un parametro file di chiave privata. Questo parametro è obbligatorio se il file della chiave privata non è una chiave JSON. |
ID account Google Workspace | api.customerId=123abcdef4567890
Questo parametro specifica l'ID dell'account Google Workspace dell'azienda. Hai ottenuto questo valore quando mappamo l'utente di identità in Cloud Search. Questo parametro è obbligatorio quando si sincronizzano gli utenti utilizzando un e il connettore di identità. |
URL di base | 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 del trasferimento
I parametri di pianificazione determinano la frequenza di attesa del connettore tra attraversamenti.
Impostazione | Parametro |
---|---|
Traversale completo all'avvio del connettore | schedule.performTraversalOnStart=true|false
Il connettore esegue un attraversamento completo all'avvio del connettore, anziché
in attesa della scadenza del primo intervallo. Il valore predefinito è |
Traversale completo dopo un intervallo | schedule.traversalIntervalSecs=intervalInSeconds
Il connettore esegue un attraversamento completo dopo un intervallo specificato. Specifica
intervallo tra gli attraversamenti in secondi. Il valore predefinito è |
Uscita dopo un singolo attraversamento | connector.runOnce=true|false
Il connettore esegue un attraversamento completo una volta, quindi si chiude. Questo parametro deve solo
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 gli attraversamenti in secondi. Il valore predefinito è
|
Intervalli di coda di sondaggi programmati | schedule.pollQueueIntervalSecs=interval_in_seconds
L'intervallo tra gli intervalli pianificati della coda di polling (in secondi). Questo è utilizzato
solo da un connettore di attraversamento elenco. Il valore predefinito è |
Elenchi di controllo di accesso
Il connettore controlla l'accesso agli elementi utilizzando gli ACL. Più parametri consentono di proteggere l'accesso degli utenti ai record indicizzati con ACL.
Se al repository sono associate singole informazioni ACL Caricare tutte le informazioni ACL per controllare l'accesso agli elementi in Cloud Search. Se il repository fornisce informazioni ACL parziali o assenti, puoi fornire le informazioni ACL nei seguenti parametri, che l'SDK fornisce di rete.
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 al dominio pubblico.
Il valore predefinito è |
Lettori di gruppi ACL comuni | defaultAcl.readers.groups=google:group1@mydomain.com,
group2 |
Lettori ACL comuni | defaultAcl.readers.users=user1, user2,
google:user3@mydomain.com |
Lettori dei gruppi rifiutati ACL comuni | defaultAcl.denied.groups=group3 |
Lettori ACL comuni rifiutati | defaultAcl.denied.users=user4, user5 |
Accesso all'intero dominio | per specificare che ogni record indicizzato deve essere accessibile pubblicamente da ogni utente
nel dominio, imposta con valori entrambi i seguenti parametri:
|
ACL definito comune | Per specificare un ACL per ogni record del repository di dati, imposta tutte le
i seguenti valori parametro:
|
Parametri di configurazione dei metadati
Alcuni dei metadati degli elementi sono configurabili. I connettori possono impostare campi di metadati configurabili dell'indicizzazione. Se il connettore non imposta un campo, vengono utilizzati i parametri del file di configurazione. per impostare il campo.
I file di configurazione contengono una serie di parametri di configurazione dei metadati denominati, indicati da
un suffisso .field
, ad esempio
itemMetadata.title.field=movieTitle
. Se esiste un valore per questi
, è utilizzato per configurare il campo dei metadati. In assenza di un valore per il parametro
parametro metadata denominato, i metadati vengono configurati utilizzando un parametro con
.defaultValue
).
La seguente tabella 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, il valore di
È in uso title.defaultValue .
|
URL repository di codice sorgente | itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
L'URL dell'elemento utilizzato nei risultati di ricerca. Potresti impostare defaultValue in modo che contenga un
URL dell'intero repository, ad esempio se il repository è un file CSV e ne esiste solo uno
URL di ogni articolo. Se sourceRepositoryUrl.field non è impostato
in un valore, viene utilizzato il valore di sourceRepositoryUrl.defaultValue .
|
Nome container | itemMetadata.containerName.field=containerName
itemMetadata.containerName.defaultValue=myDefaultContainerName
Il nome del container dell'elemento, ad esempio il nome di una directory o di una cartella del file system. Se containerName.field non è impostato su un valore, il valore di
È in uso containerName.defaultValue .
|
Tipo di oggetto | itemMetadata.objectType.field=type itemMetadata.objectType.defaultValue=
Il tipo di oggetto utilizzato dal connettore, come definito nel schema. Il connettore non indicizza i dati strutturati se questa proprietà non è specificata. Se objectType.field non è impostato su un valore, il valore di
objectType.defaultValue è in uso.
|
Ora di 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 .
|
Ora di aggiornamento | itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
Il timestamp dell'ultima modifica per l'elemento. Se updateTime.field non è impostato su
viene usato il valore di updateTime.defaultValue .
|
Lingua dei contenuti | itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=
La lingua dei contenuti per i documenti da indicizzare. 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 è 256 caratteri. Se mimeType.field non è impostato su un valore, il valore di
È in uso 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, il valore di
È in uso 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 items.push per calcolare lo stato modificato. La lunghezza massima è 2048
caratteri. Se hash.field non è impostato su un valore, il valore di
È in uso hash.defaultValue .
|
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 tabella seguente mostra questo parametro.
Impostazione | Parametro |
Altri formati data/ora | structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
Un elenco separato da punti e virgola di java.time.format.DateTimeFormatter aggiuntivi
pattern. I pattern vengono utilizzati durante l'analisi dei valori stringa per qualsiasi campo data o data/ora
nei metadati o nello schema. Il valore predefinito è un elenco vuoto, ma RFC 3339 e RFC 1123
sono sempre supportati.
|
Dati strutturati
L'API Cloud Search Index fornisce un servizio per gli schemi che puoi utilizzare per: personalizzare il modo in cui Cloud Search indicizza e fornisce i tuoi dati. Se utilizzi un dello schema del repository locale, devi specificare i dati strutturati del nome dello schema.
Impostazione | Parametro |
---|---|
Nome schema locale | structuredData.localSchema=mySchemaName
Il nome dello schema viene letto dall'origine dati e utilizzato per il repository dati strutturati. Il valore predefinito è una stringa vuota. |
Qualità dei contenuti e della ricerca
Per i repository che includono contenuti basati su record o campi (come CRM, CVS, o database), l'SDK consente la formattazione HTML automatica per i campi di dati. Il tuo Il connettore definisce i campi dei dati all'inizio dell'esecuzione del connettore e utilizza un modello di contenuti per formattare ciascun record di dati prima di caricarlo in Cloud Search.
Il modello di contenuti definisce l'importanza del valore di ciascun campo per la ricerca.
HTML <title>
è obbligatorio e viene definito con la priorità più alta. Puoi
designa i livelli di importanza della qualità della ricerca per tutti gli altri campi di contenuti:
alta, media o bassa. Qualsiasi campo di contenuti non definito in una categoria specifica
il valore predefinito è bassa priorità.
Impostazione | Parametro |
---|---|
Titolo HTML 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 è vuoto stringa. |
Qualità di ricerca elevata per i campi dei contenuti | contentTemplate.templateName.quality.high=hField1,hField2
Campi dei contenuti a cui è stata assegnata un'elevata priorità di ricerca. Il valore predefinito è una stringa vuota. |
Qualità di ricerca media per i campi di contenuti | contentTemplate.templateName.quality.medium=mField1,mField2
Campi dei contenuti a cui è stata assegnata una priorità di ricerca media. Il valore predefinito è una stringa vuota. |
Scarsa qualità di ricerca per i campi dei contenuti | contentTemplate.templateName.quality.low=lField1,lField2
Campi dei contenuti a cui è stata assegnata una priorità di ricerca bassa. Il valore predefinito è una stringa vuota. |
Campi di contenuti non specificati | contentTemplate.templateName.unmappedColumnsMode=value
Modalità di gestione dei campi di contenuti non specificati da parte del connettore. I valori validi sono:
|
Includi nomi di campi nel modello HTML | contentTemplate.templateName.includeFieldName=true|false
Consente di specificare se includere i nomi dei campi insieme ai dati dei campi nell'HTML
modello. Il valore predefinito è |
Parametri impostati in modo insolito
Raramente è necessario impostare i parametri elencati in questa sezione. I valori predefiniti dei parametri sono per ottenere prestazioni ottimali. Google sconsiglia di impostare questi parametri su diversi da quelli predefiniti senza requisiti specifici all'interno dei tuoi repository Git.
Configurazione proxy
L'SDK consente di configurare il connettore in modo che utilizzi un proxy per le connessioni in uscita.
I parametri transport.proxy.hostname
e transport.proxy.port
sono
necessaria per abilitare il trasporto attraverso un proxy. Gli altri parametri potrebbero essere obbligatori
se il proxy richiede l'autenticazione o opera sul protocollo SOCKS anziché su 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 si utilizza un proxy. |
Porta | transport.proxy.port=port
Il numero di porta del server proxy. Questo parametro è obbligatorio se si utilizza 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. |
Traverser
L'SDK consente di specificare più trasferimenti individuali per consentire attraversamenti paralleli di un repository di dati. I connettori di modelli SDK utilizzano funzionalità.
Impostazione | Parametro |
---|---|
Dimensioni del pool di thread | traverse.threadPoolSize=size
Numero di thread creati dal connettore per consentire l'elaborazione parallela. R un singolo iteratore recupera le operazioni in modo seriale (di solito gli oggetti RepositoryDoc), ma l'API chiama i processi in parallelo utilizzando questo numero di thread. Il valore predefinito è |
Dimensione partizione | traverse.partitionSize=batchSize
Numero di Il valore predefinito è |
Richieste di trasferimento poll
Il nucleo della coda di indicizzazione di Cloud Search è una coda prioritaria contenente una per ogni elemento di cui è nota l'esistenza. Un connettore di schede può richiedere il polling di indicizzazione da parte di altri elementi. Una richiesta di sondaggio riceve le voci con la priorità più alta dalla coda di indicizzazione.
I seguenti parametri vengono utilizzati dal modello di connettore delle schede dell'SDK per per definire i parametri di polling.
Impostazione | Parametro |
---|---|
Trasferimento repository | repository.traversers=t1, t2, t3, ...
Crea uno o più trasferimenti individuali dove t1, t2, t3,
... è il nome univoco di ciascuno. Ogni traverser denominato ha il proprio insieme di impostazioni
identificati mediante il nome univoco dell'operatore, come
|
Coda da sottoporre a polling | traverser.pollRequest.queue=mySpecialQueue
Nomi delle code che questo attraversatore esegue il polling. La stringa predefinita è vuota (significa che "predefinito"). |
traverser.t1.pollRequest.queue=mySpecialQueue
In presenza di più vettori, imposta gli stati dell'elemento per ciascuno (dove t1 rappresenta un vettore specifico). |
|
Comportamento polling | traverser.pollRequest.limit=maxItems
Numero massimo di elementi da restituire da una richiesta di polling.
Il valore predefinito è |
traverser.t1.pollRequest.limit=limit
In presenza di più vettori, imposta gli stati dell'elemento per ciascuno (dove t1 rappresenta un vettore specifico). |
|
Stato elemento | traverser.pollRequest.statuses=statuses
Gli stati dell'elemento specifico interrogati da questo attraversatore, dove statuses può essere
qualsiasi combinazione di |
traverser.t1.pollRequest.statuses=statusesForThisTraverser
In presenza di più vettori, imposta gli stati dell'elemento per ciascuno di essi (dove t1, rappresenta un vettore specifico). | |
Carico host | traverser.hostload=threads
Numero massimo di thread paralleli attivi disponibili per il polling. Il valore predefinito
il valore è |
traverser.t1.hostload=threadsForThisTraverser
In presenza di più vettori, imposta gli stati dell'elemento per ciascuno di essi (dove t1, rappresenta un vettore specifico). |
|
Timeout | traverser.timeout=timeout
Valore di timeout per l'interruzione di questo tentativo di polling del traversa. Il valore predefinito è |
traverser.t1.timeout=timeoutForThisTraverser
In presenza di più vettori, imposta gli stati dell'elemento per ciascuno di essi (dove t1, rappresenta un vettore specifico). |
|
traverser.timeunit=timeoutUunit
Le unità di timeout. I valori validi sono |
|
traverser.t1.timeunit=timeoutUnit
In presenza di più vettori, imposta gli stati dell'elemento per ciascuno di essi (dove t1, rappresenta un vettore specifico). |
Nella maggior parte dei casi, un connettore che utilizza solo il modello di connettore che elenca l'SDK richiede un singolo set di parametri per il polling. In alcuni casi, può essere necessario definisci più di un criterio di polling se l'algoritmo di attraversamento richiede separando l'elaborazione degli elementi tramite diverse code, ad esempio.
In questo caso, hai la possibilità di definire più gruppi di polling
parametri. Iniziare specificando i nomi dei set di parametri utilizzando
repository.traversers
. Per ogni nome del traverser definito, fornisci il valore
di configurazione del deployment con i parametri della tabella precedente
t1
con il nome del traverser. Viene creato un insieme di sondaggi
per ogni trasferimento definito.
Checkpoint
Un checkpoint è utile per tracciare lo stato di un attraversamento incrementale.
Impostazione | Parametro |
---|---|
Directory di checkpoint | connector.checkpointDirectory=/path/to/checkpoint
Specifica il percorso della directory locale da utilizzare per i punti di controllo incrementali e di attraversamento completo. |
Caricamenti di contenuti
I contenuti dell'elemento vengono caricati in Cloud Search insieme all'elemento quando le dimensioni dei contenuti non superano la soglia specificata. Se le dimensioni dei contenuti supera la soglia, i contenuti vengono caricati separatamente rispetto alla metadati e dati strutturati.
Impostazione | Parametro |
---|---|
Soglia contenuti | api.contentUploadThresholdBytes=bytes
La soglia per i contenuti che determina se vengono caricati "in linea" con dell'elemento rispetto a un caricamento separato. Il valore predefinito è |
Container
Il modello di connettore completo utilizza un algoritmo che prevede il concetto di Pulsante di attivazione/disattivazione della coda dell'origine dati temporanea per rilevare i record eliminati nel database. Ciò significa che, a ogni attraversamento completo, i record recuperati, che si trovano in un nuova coda, sostituisci tutti i record Cloud Search esistenti indicizzati dalla attraversamento precedente, che si trovano in una vecchia coda.
Impostazione | Parametro |
---|---|
Tag nome container | traverse.queueTag=instance
Eseguire più istanze del connettore in parallelo per indicizzare un dato comune su repository di dati diversi o in parti separate di un repository di dati) senza interferire tra loro, assegnare un container a ogni esecuzione del connettore. Un tag univoco impedisce che un connettore per impedire l'eliminazione dei record di un'altra istanza. Il tag viene aggiunto all'ID della coda di attivazione/disattivazione del connettore di attraversamento completo. |
Disabilita il rilevamento dell'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
implementare il modello |
Criterio batch
L'SDK supporta un criterio batch che consente di eseguire quanto segue: azioni:
- Richieste batch
- Specifica il numero di richieste in una coda batch
- Gestisci batch eseguiti in contemporanea
- Elimina richieste in batch
L'SDK riunisce le richieste del connettore per velocizzare la velocità effettiva durante caricamenti. L'attivatore SDK per il caricamento di un batch di richieste è tramite il numero di richieste o il timeout, a seconda dell'evento che si verifica per primo. Ad esempio, se il tempo di ritardo del batch è scaduto senza che sia stata raggiunta la dimensione del batch oppure se dimensione del batch di elementi raggiunta prima della scadenza del tempo di ritardo, viene attivato il caricamento in gruppo.
Impostazione | Parametro |
---|---|
Richieste batch | batch.batchSize
Raggruppa le richieste. 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 è |
Esecuzione contemporanea di batch | batch.maxActiveBatches=maxActiveBatches
Numero di batch consentiti in esecuzione contemporaneamente.
Il valore predefinito è |
Esegui automaticamente lo svuotamento delle richieste in batch | batch.maxBatchDelaySeconds=maxBatchDelay
Numero di secondi di attesa prima che le richieste in batch vengano
viene fatto svuotare automaticamente. La
il valore predefinito è |
Fai svuotare le richieste in batch all'arresto | batch.flushOnShutdown=true|false
Esegui il svuotamento delle richieste in batch durante l'arresto del servizio.
Il valore predefinito è |
Gestori di eccezioni
I parametri dei gestori delle eccezioni determinano il modo in cui l'operatore procede dopo rileva un'eccezione.
Impostazione | Parametro |
---|---|
Istruzioni del trasferimento in caso di errore | traverse.exceptionHandler=exceptions
Come deve procedere l'agente di trasferimento dopo la generazione di un'eccezione. Valori validi sono:
|
Tempo di attesa tra le eccezioni | abortExceptionHander.backoffMilliSeconds=backoff
Tempo di backoff in millisecondi di attesa tra le eccezioni rilevate dai gestori
(solitamente utilizzata durante il trasferimento di un repository). Il valore predefinito è |