В состав Google Cloud Search SDK входят предоставленные Google параметры конфигурации для всех коннекторов. Настройка этих параметров может оптимизировать индексирование данных. В этом руководстве перечислены распространенные проблемы индексирования и параметры для их решения.
Низкая пропускная способность индексирования для FullTraversalConnector
В таблице ниже перечислены настройки для повышения пропускной способности FullTraversalConnector :
| Параметр | Описание | По умолчанию | Предложенные изменения |
|---|---|---|---|
traverse.partitionSize | Количество элементов ApiOperation() , обработанных партиями. SDK ожидает завершения обработки каждой части запроса, прежде чем получать новые данные. | 50 | Увеличьте значение до 1000 или более, если у вас достаточно памяти. |
batch.batchSize | Количество запросов, объединенных в одну группу. | 10 | Попробуйте уменьшить размер партии. |
batch.maxActiveBatches | Допустимое количество одновременно обрабатываемых партий. | 20 | Если вы уменьшите batchSize , увеличьте его, используя формулу: (partitionSize / batchSize) + 50 . |
traverse.threadPoolSize | Количество потоков для параллельной обработки. | 50 | Увеличьте это число на кратные 10. |
Рекомендуется использовать setRequestMode() для переключения между ASYNCHRONOUS и SYNCHRONOUS режимами запросов API.
Низкая пропускная способность индексирования для ListTraversalConnector
Объект ListTraversalConnector по умолчанию использует один обработчик. Для повышения пропускной способности создайте несколько обработчиков для определенных статусов элементов (например, NEW_ITEM , MODIFIED ).
| Параметр | Описание | По умолчанию | Изменять |
|---|---|---|---|
repository.traversers | Создает отдельные обходчики с уникальными именами (например, t1, t2 ). | Один путешественник | Добавить больше траверсеров. |
traversers. t1 .hostload | Количество потоков для одновременной индексации элементов. | 5 | Попробуйте значения 10 или больше. |
schedule.pollQueueIntervalSecs | Количество секунд, которое нужно подождать перед повторным опросом пустой очереди. | 10 | Попробуйте снизить значение до 1. |
traverser. t1 .pollRequest.statuses | Статусы для индексации (например, NEW_ITEM ). | Все | Для разных состояний используйте разные обходчики. |
Тайм-ауты или прерывания SDK
Если при загрузке больших файлов возникают ошибки таймаута, увеличьте время ожидания, используя traverser.timeout= seconds (по умолчанию — 60 секунд). Вы также можете увеличить время ожидания запросов к API:
| Параметр | Описание | По умолчанию |
|---|---|---|
indexingService.connectTimeoutSeconds | Истекло время ожидания подключения для запросов к API. | 120-е |
indexingService.readTimeoutSeconds | Истекло время ожидания для запросов к API. | 120-е |