Das Google Cloud Search SDK enthält von Google bereitgestellte Konfigurationsparameter für alle Connectors. Durch die Anpassung dieser Einstellungen kann die Datenindexierung optimiert werden. In diesem Leitfaden werden häufige Indexierungsprobleme und die Einstellungen zur Behebung dieser Probleme aufgeführt.
Niedriger Indexierungsdurchsatz für FullTraversalConnector
In der folgenden Tabelle sind Einstellungen aufgeführt, mit denen Sie den Durchsatz für eine FullTraversalConnector verbessern können:
| Einstellung | Beschreibung | Standard | Vorgeschlagene Änderung |
|---|---|---|---|
traverse.partitionSize |
Die Anzahl der ApiOperation()-Elemente, die in Batches verarbeitet wurden. Das SDK wartet, bis eine Partition abgeschlossen ist, bevor weitere abgerufen werden. |
50 | Erhöhen Sie den Wert auf 1.000 oder mehr, wenn Sie genügend Arbeitsspeicher haben. |
batch.batchSize |
Die Anzahl der zusammengefassten Anfragen. | 10 | Reduzieren Sie die Batchgröße. |
batch.maxActiveBatches |
Zulässige gleichzeitige Batches. | 20 | Wenn Sie batchSize senken, erhöhen Sie diesen Wert mit (partitionSize / batchSize) + 50. |
traverse.threadPoolSize |
Anzahl der Threads für die parallele Verarbeitung. | 50 | Erhöhen Sie diesen Wert um Vielfache von 10. |
Verwenden Sie setRequestMode(), um zwischen den API-Anfragemodi ASYNCHRONOUS und SYNCHRONOUS zu wechseln.
Niedriger Indexierungsdurchsatz für ListTraversalConnector
Für ein ListTraversalConnector wird standardmäßig ein Traverser verwendet. Um den Durchsatz zu erhöhen, erstellen Sie mehrere Traverser für bestimmte Artikelstatus (z.B.
NEW_ITEM, MODIFIED).
| Einstellung | Beschreibung | Standard | Ändern |
|---|---|---|---|
repository.traversers | Erstellt einzelne Traverser mit eindeutigen Namen (z.B. t1, t2). | Ein Traverser | Fügen Sie weitere Traverser hinzu. |
traversers.t1.hostload | Anzahl der Threads, mit denen Elemente gleichzeitig indexiert werden sollen. | 5 | Versuchen Sie es mit Werten von mindestens 10. |
schedule.pollQueueIntervalSecs | Anzahl der Sekunden, die gewartet werden soll, bevor eine leere Warteschlange noch einmal abgefragt wird. | 10 | Versuchen Sie, den Wert auf 1 zu senken. |
traverser.t1.pollRequest.statuses | Zu indexierende Status (z.B. NEW_ITEM). | Alle | Verwenden Sie unterschiedliche Traverser für unterschiedliche Status. |
SDK-Zeitüberschreitungen oder ‑Unterbrechungen
Wenn beim Hochladen großer Dateien Zeitüberschreitungen auftreten, erhöhen Sie das Zeitlimit mit traverser.timeout=seconds (Standardwert: 60 Sekunden). Sie können auch API-Anfrage-Timeouts verlängern:
| Parameter | Beschreibung | Standard |
|---|---|---|
indexingService.connectTimeoutSeconds |
Zeitüberschreitung für die Verbindung bei API-Anfragen. | 120 s |
indexingService.readTimeoutSeconds |
Lese-Zeitlimit für API-Anfragen. | 120 s |