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 秒 |