El SDK de Google Cloud Search incluye parámetros de configuración proporcionados por Google para todos los conectores. Ajustar esta configuración puede optimizar la indexación de datos. En esta guía, se muestran los problemas de indexación comunes y la configuración para resolverlos.
Baja capacidad de procesamiento de indexación para FullTraversalConnector
En la siguiente tabla, se muestra la configuración para mejorar la capacidad de procesamiento de un
FullTraversalConnector:
| Configuración | Descripción | Predeterminado | Cambio sugerido |
|---|---|---|---|
traverse.partitionSize |
Es la cantidad de elementos ApiOperation() procesados en lotes. El SDK espera a que se complete una partición antes de recuperar más. |
50 | Aumenta a 1,000 o más si tienes suficiente memoria. |
batch.batchSize |
La cantidad de solicitudes agrupadas. | 10 | Intenta reducir el tamaño del lote. |
batch.maxActiveBatches |
Lotes simultáneos permitidos. | 20 | Si reduces batchSize, aumenta este valor con (partitionSize / batchSize) + 50. |
traverse.threadPoolSize |
Cantidad de subprocesos para el procesamiento en paralelo. | 50 | Aumenta este valor en múltiplos de 10. |
Considera usar setRequestMode() para cambiar entre ASYNCHRONOUS y
SYNCHRONOUS modos de solicitud a la API.
Baja capacidad de procesamiento de indexación para ListTraversalConnector
Un ListTraversalConnector usa un desviador de forma predeterminada. Para aumentar la capacidad de procesamiento, crea varios desviadores para estados de elementos específicos (p.ej., NEW_ITEM, MODIFIED).
| Configuración | Descripción | Predeterminado | Cambiar |
|---|---|---|---|
repository.traversers | Crea desviadores individuales
con nombres únicos (p.ej., t1, t2). | Un desviador | Agrega más desviadores. |
traversers.t1.hostload | Cantidad de subprocesos para indexar elementos de forma simultánea. | 5 | Prueba valores de 10 o más. |
schedule.pollQueueIntervalSecs | Segundos que se deben esperar antes de volver a consultar una cola vacía. | 10 | Intenta bajar a 1. |
traverser.t1.pollRequest.statuses | Estados
para indexar (p.ej., NEW_ITEM). | Todos | Usa diferentes desviadores para diferentes estados. |
El SDK excede el tiempo de espera o se interrumpe
Si experimentas tiempos de espera agotados cuando subes archivos grandes, aumenta el tiempo de espera
con traverser.timeout=seconds
(el valor predeterminado es de 60 segundos). También puedes aumentar los tiempos de espera de las solicitudes a la API:
| Parámetro | Descripción | Predeterminado |
|---|---|---|
indexingService.connectTimeoutSeconds |
Tiempo de espera de conexión para las solicitudes a la API. | 120s |
indexingService.readTimeoutSeconds |
Tiempo de espera de lectura para las solicitudes a la API. | 120s |