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 はデフォルトで 1 つのトラバーサを使用します。スループットを高めるには、特定のアイテム ステータス(NEW_ITEM、MODIFIED など)に対して複数の走査を作成します。
| 設定 | 説明 | デフォルト | 変更 |
|---|---|---|---|
repository.traversers | 一意の名前(t1, t2 など)を持つ個別の走査を作成します。 | 1 つの走査 | トラバーサを追加します。 |
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 秒 |