L'SDK Google Cloud Search include parametri di configurazione forniti da Google per tutti i connettori. La regolazione di queste impostazioni può semplificare l'indicizzazione dei dati. Questa guida elenca i problemi di indicizzazione più comuni e le impostazioni per risolverli.
Velocità effettiva di indicizzazione bassa per FullTraversalConnector
La tabella seguente elenca le impostazioni per migliorare il throughput per un
FullTraversalConnector:
| Impostazione | Descrizione | Predefinito | Modifica suggerita |
|---|---|---|---|
traverse.partitionSize |
Il numero di elementi ApiOperation() elaborati in batch. L'SDK attende il completamento di una partizione prima di recuperarne altre. |
50 | Aumenta a 1000 o più se hai memoria sufficiente. |
batch.batchSize |
Il numero di richieste raggruppate. | 10 | Prova a ridurre le dimensioni del batch. |
batch.maxActiveBatches |
Batch simultanei consentiti. | 20 | Se abbassi batchSize, aumentalo utilizzando (partitionSize / batchSize) + 50. |
traverse.threadPoolSize |
Numero di thread per l'elaborazione parallela. | 50 | Aumenta questo valore di multipli di 10. |
Valuta la possibilità di utilizzare setRequestMode() per passare dalla modalità di richiesta API ASYNCHRONOUS a quella SYNCHRONOUS e viceversa.
Throughput di indicizzazione basso per ListTraversalConnector
Un ListTraversalConnector utilizza un traverser per impostazione predefinita. Per aumentare
il throughput, crea più traverser per stati specifici degli articoli (ad es.
NEW_ITEM, MODIFIED).
| Impostazione | Descrizione | Predefinito | Cambia |
|---|---|---|---|
repository.traversers | Crea traverser individuali
con nomi univoci (ad es. t1, t2). | Un traversatore | Aggiungi altri traverser. |
traversers.t1.hostload | Numero di thread per indicizzare contemporaneamente gli elementi. | 5 | Prova con valori pari o superiori a 10. |
schedule.pollQueueIntervalSecs | Secondi di attesa prima di eseguire nuovamente il polling di una coda vuota. | 10 | Prova a impostare il valore su 1. |
traverser.t1.pollRequest.statuses | Stati
da indicizzare (ad es. NEW_ITEM). | Tutti | Utilizza traverser diversi per stati diversi. |
Timeout o interruzioni dell'SDK
Se si verificano timeout durante il caricamento di file di grandi dimensioni, aumenta il timeout
utilizzando traverser.timeout=seconds
(il valore predefinito è 60 secondi). Puoi anche aumentare i timeout delle richieste API:
| Parametro | Descrizione | Predefinito |
|---|---|---|
indexingService.connectTimeoutSeconds |
Timeout connessione per le richieste API. | 120s |
indexingService.readTimeoutSeconds |
Timeout di lettura per le richieste API. | 120s |