O SDK do Google Cloud Search inclui parâmetros de configuração fornecidos pelo Google para todos os conectores. Ajustar essas configurações pode otimizar a indexação de dados. Este guia lista problemas comuns de indexação e as configurações para resolvê-los.
Capacidade de indexação baixa para FullTraversalConnector
A tabela a seguir lista as configurações para melhorar a capacidade de processamento de um
FullTraversalConnector:
| Configuração | Descrição | Padrão | Mudança sugerida |
|---|---|---|---|
traverse.partitionSize |
O número de itens ApiOperation() processados em lotes. O SDK aguarda a conclusão de uma partição antes de buscar mais. |
50 | Aumente para 1.000 ou mais se você tiver memória suficiente. |
batch.batchSize |
O número de solicitações em lote. | 10 | Tente diminuir o tamanho do lote. |
batch.maxActiveBatches |
Lotes simultâneos permitidos. | 20 | Se você diminuir batchSize, aumente esse valor usando: (partitionSize / batchSize) + 50. |
traverse.threadPoolSize |
Número de linhas de execução para processamento paralelo. | 50 | Aumente esse valor em múltiplos de 10. |
Considere usar setRequestMode() para alternar entre ASYNCHRONOUS e
SYNCHRONOUS modos de solicitação de API.
Capacidade de processamento de indexação baixa para ListTraversalConnector
Um ListTraversalConnector usa um atravessador por padrão. Para aumentar a capacidade de processamento, crie vários atravessadores para status de itens específicos (por exemplo, NEW_ITEM, MODIFIED).
| Configuração | Descrição | Padrão | Mudar |
|---|---|---|---|
repository.traversers | Cria atravessadores individuais
com nomes exclusivos (por exemplo, t1, t2). | Um atravessador | Adicione mais atravessadores. |
traversers.t1.hostload | Número de linhas de execução para indexar itens simultaneamente. | 5 | Tente valores de 10 ou mais. |
schedule.pollQueueIntervalSecs | Segundos para aguardar antes de pesquisar novamente uma fila vazia. | 10 | Tente diminuir para 1. |
traverser.t1.pollRequest.statuses | Status
para indexar (por exemplo, NEW_ITEM). | Todos | Use atravessadores diferentes para status diferentes. |
Tempos limites ou interrupções do SDK
Se você tiver tempos limites ao fazer o upload de arquivos grandes, aumente o tempo limite
usando traverser.timeout=seconds
(o padrão é de 60 segundos). Você também pode aumentar os tempos limites de solicitação de API:
| Parâmetro | Descrição | Padrão |
|---|---|---|
indexingService.connectTimeoutSeconds |
Conecte o tempo limite para solicitações de API. | 120s |
indexingService.readTimeoutSeconds |
Leia o tempo limite para solicitações de API. | 120s |