Google Cloud Search SDK 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 comuni e le impostazioni per risolverli.
Throughput di indicizzazione basso per FullTraversalConnector
La tabella seguente elenca le impostazioni per migliorare il throughput di 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 in batch. | 10 | Prova a ridurre le dimensioni del batch. |
batch.maxActiveBatches |
Batch simultanei consentiti. | 20 | Se riduci 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
SYNCHRONOUS.
Throughput di indicizzazione basso per ListTraversalConnector
Un ListTraversalConnector utilizza un solo traverser per impostazione predefinita. Per aumentare il throughput, crea più traverser per stati di elementi specifici (ad es. NEW_ITEM, MODIFIED).
| Impostazione | Descrizione | Predefinito | Modifica |
|---|---|---|---|
repository.traversers | Crea singoli
traverser con nomi univoci (ad es. t1, t2). | Un traverser | Aggiungi altri traverser. |
traversers.t1.hostload | Numero di thread per indicizzare contemporaneamente gli elementi. | 5 | Prova con valori pari o superiori a 10 o superiori. |
schedule.pollQueueIntervalSecs | Secondi di attesa prima di eseguire di nuovo il polling di una coda vuota. | 10 | Prova a ridurre a 1. |
traverser.t1.pollRequest.statuses | Stati
da indicizzare (ad es. NEW_ITEM). | Tutte | 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 di connessione per le richieste API. | 120 secondi |
indexingService.readTimeoutSeconds |
Timeout di lettura per le richieste API. | 120 secondi |