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