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.
Baixa capacidade de indexação para FullTraversalConnector
A tabela a seguir lista as configurações para melhorar a capacidade 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 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 os modos de solicitação de API ASYNCHRONOUS e SYNCHRONOUS.
Baixa capacidade de indexação para ListTraversalConnector
Um ListTraversalConnector usa um traverser por padrão. Para aumentar a capacidade de processamento, crie vários rastreadores 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 percorredor | Adicione mais traversers. |
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
a serem indexados (por exemplo, NEW_ITEM). | Todos | Use diferentes atravessadores para diferentes status. |
Tempos limites ou interrupções do SDK
Se você tiver problemas de tempo limite ao fazer upload de arquivos grandes, aumente o tempo limite usando traverser.timeout=seconds (o padrão é 60 segundos). Também é possível aumentar os tempos limite de solicitação da API:
| Parâmetro | Descrição | Padrão |
|---|---|---|
indexingService.connectTimeoutSeconds |
Tempo limite de conexão para solicitações de API. | 120s |
indexingService.readTimeoutSeconds |
Leia o tempo limite para solicitações de API. | 120s |