調整連接器設定

Google Cloud Search SDK 包含多項 Google 提供的設定 參數。瞭解如何調整這些設定 大幅簡化資料索引作業本指南列出了 可能會顯示在索引過程中及用來解決問題的設定。

FullTraversalConnector 的索引處理量偏低

下表列出可改善伺服器處理量的配置設定 FullTraversalConnector

設定 說明 預設 要試用的設定變更
traverse.partitionSize 擷取額外的 APIOperation() 前,要分批處理的 ApiOperation() 數量。SDK 會先等待處理目前的分區後,再擷取其他項目。這項設定取決於可用記憶體容量,較小的分區大小 (例如 50 或 100) 需要的記憶體較少,但會代表 SDK 等待更多。 50 如果您可以使用大量記憶體,請嘗試將 partitionSize 增加至 1000 以上。
batch.batchSize 批次處理的要求數量。分區結束時,SDK 會等待所有批次要求從分區處理。較大的批次可能需要更長的等待時間。 10 請嘗試調降批次大小。
batch.maxActiveBatches 可並行執行的批次作業數量。 20 如果調降 batchSize,請根據以下公式讓 maxActiveBatches 調升:

maxActiveBatches = (partitionSize / batchSize) + 50。舉例來說,如果您的 partititionSize 為 1000,而 batchSize 為 5,則 maxActiveBatches 應為 250。額外 50 則是重試要求的緩衝區。這項增加值可讓連接器在不封鎖的情況下批次處理所有要求。
traverse.threadPoolSize 連接器建立允許平行處理的執行緒數量。單一疊代器會依序擷取作業 (通常是 RepositoryDoc 物件),但 API 呼叫則會使用 threadPoolSize 數量的執行緒平行處理。每個執行緒一次會處理一個項目。預設值 50 個選項可同時處理最多 50 個項目,而個別項目 (包括索引建立要求) 大約需要 4 秒鐘才能處理完畢。 50 請嘗試將threadPoolSize增加為 10 的倍數。

最後,建議您使用 setRequestMode() 方法變更 API 要求模式 (ASYNCHRONOUSSYNCHRONOUS)。

如要進一步瞭解設定檔參數,請參閱 Google 提供的設定參數

ListTraversalConnector 的索引處理量偏低

根據預設,實作 ListTraversalConnector 的連接器會使用 獨行符號,為您的項目建立索引。如要提高索引處理量,您可以 可建立多個週遊,並且各自設計要著重的 項目狀態 (NEW_ITEMMODIFIED 等)。下表為 配置設定,改善處理量:

,直接在 Google Cloud 控制台實際操作。
設定說明預設要試用的設定變更
repository.traversers = t1, t2, t3, ...建立一或多組個別週遊,其中 t1, t2, t3, ... 是每個週遊的專屬名稱。每個指定的周遊者都有各自的設定,以周遊者的獨特名稱來識別,例如 traversers.t1.hostloadtraversers.t2.hostload單行星使用這項設定可新增其他週遊
traversers.t1.hostload = n識別用於同時為項目建立索引的執行緒數量 (n)。5根據您要新增至存放區的負載量來調整 n。開頭的值為 10 以上。
schedule.pollQueueIntervalSecs = s識別重新輪詢前要等待的秒數 (s)。只要 API 傳回意見調查回應中的項目,內容連接器就會持續輪詢項目。如果意見調查回覆沒有內容,連接器會等待 s 秒後再試一次。這項設定僅供 ListingConnector 使用10建議降到 1。
traverser.t1.pollRequest.statuses = status1, status2, …指定要建立索引的項目狀態:status1status2。舉例來說,將 status1 設為 NEW_ITEMstatus2 設為 MODIFIED,會指示 t1 僅為具有這些狀態的項目建立索引。一項週遊程序可檢查所有狀態嘗試針對不同狀態進行不同的周遊者輪詢。

如要進一步瞭解設定檔參數,請參閱 Google 提供的設定參數

在上傳大型檔案時,SDK 逾時或中斷

如果上傳大型檔案時發生 SDK 逾時或中斷情形, 指定較大的逾時值 traverser.timeout=s (其中 s = 秒數)。這個值代表工作站時間長度 執行緒都必須處理項目SDK 中的預設逾時為 60 秒 延伸至另一個字詞的模式另外,如果您遇到個別 API 要求 逾時,請使用下列方法增加要求逾時值:

要求逾時參數 說明 預設
indexingService.connectTimeoutSeconds 為 API 要求建立索引的連線逾時。 120 秒。
indexingService.readTimeoutSeconds 讀取 API 要求索引建立逾時。 120 秒。