Google Cloud Search SDK には、すべてのコネクタで使用される Google 提供の構成パラメータが含まれています。これらの設定を調整することで、データのインデックス登録を効率化できます。このガイドでは、一般的なインデックス登録の問題と、その解決に使用する設定について説明します。
FullTraversalConnector のインデックス登録のスループットが低い
次の表に、
FullTraversalConnector のスループットを改善するための設定を示します。
| 設定 | 説明 | デフォルト | 推奨される変更 |
|---|---|---|---|
traverse.partitionSize |
バッチで処理される ApiOperation() アイテムの数。SDK は、パーティションが完了するまで待機してから、さらに取得します。 |
50 | 十分なメモリがある場合は、1,000 以上に増やします。 |
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 秒 |