コネクタ設定の調整

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() を使用して ASYNCHRONOUSSYNCHRONOUS の API リクエスト モードを切り替えることを検討してください。

ListTraversalConnector のインデックス登録のスループットが低い

ListTraversalConnector はデフォルトで 1 つのトラバーサを使用します。スループットを高めるには、特定のアイテム ステータス(NEW_ITEMMODIFIED など)に対して複数の走査を作成します。

設定説明デフォルト変更
repository.traversers一意の名前(t1, t2 など)を持つ個別の走査を作成します。1 つの走査トラバーサを追加します。
traversers.t1.hostloadアイテムを同時にインデックス登録するスレッド数。510 以上の値を試してください。
schedule.pollQueueIntervalSecs空のキューを再度ポーリングするまでの待機時間(秒単位)。101 に下げてみてください。
traverser.t1.pollRequest.statusesインデックスに登録するステータス(例: NEW_ITEM)。すべてステータスごとに異なるトラバーサを使用します。

SDK のタイムアウトまたは割り込み

大きなファイルをアップロードするときにタイムアウトが発生する場合は、traverser.timeout=seconds を使用してタイムアウトを増やします(デフォルトは 60 秒)。API リクエストのタイムアウトを増やすこともできます。

パラメータ 説明 デフォルト
indexingService.connectTimeoutSeconds API リクエストの接続タイムアウト。 120 秒
indexingService.readTimeoutSeconds API リクエストの読み取りタイムアウト。 120 秒