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