Das Google Cloud Search SDK enthält von Google bereitgestellte Konfigurationsparameter für alle Connectors. Durch Optimieren dieser Einstellungen kann die Datenindexierung beschleunigt werden. In diesem Leitfaden werden häufige Probleme bei der Indexierung und die Einstellungen zur Behebung dieser Probleme aufgeführt.
Niedriger Indexierungsdurchsatz für FullTraversalConnector
In der folgenden Tabelle sind die Einstellungen aufgeführt, mit denen der Durchsatz für einen
FullTraversalConnector verbessert werden kann:
| Einstellung | Beschreibung | Standard | Empfohlene Änderung |
|---|---|---|---|
traverse.partitionSize |
Anzahl der ApiOperation()-Elemente, die in Batches verarbeitet werden. Das SDK wartet, bis eine Partition abgeschlossen ist, bevor weitere Elemente abgerufen werden. |
50 | Erhöhen Sie den Wert auf 1.000 oder mehr, wenn Sie genügend Arbeitsspeicher haben. |
batch.batchSize |
Anzahl der Anfragen, die zusammen in einem Batch verarbeitet werden. | 10 | Verringern Sie die Batchgröße. |
batch.maxActiveBatches |
Zulässige Anzahl gleichzeitiger Batches. | 20 | Wenn Sie batchSize verringern, 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 in Schritten von 10. |
Sie können setRequestMode() verwenden, um zwischen ASYNCHRONOUS und
SYNCHRONOUS API-Anfragemodi zu wechseln.
Niedriger Indexierungsdurchsatz für ListTraversalConnector
Ein ListTraversalConnector verwendet standardmäßig einen Traverser. Um den Durchsatz zu erhöhen, erstellen Sie mehrere Traverser für bestimmte Elementstatus (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 zum gleichzeitigen Indexieren von Elementen. | 5 | Verwenden Sie Werte von 10 oder höher. |
schedule.pollQueueIntervalSecs | Wartezeit in Sekunden bevor eine leere Warteschlange noch einmal abgefragt wird. | 10 | Verringern Sie den Wert auf 1. |
traverser.t1.pollRequest.statuses | Status
, die indexiert werden sollen (z.B. NEW_ITEM). | Alle | Verwenden Sie für verschiedene Status unterschiedliche Traverser. |
SDK-Zeitüberschreitungen oder -Unterbrechungen
Wenn beim Hochladen großer Dateien Zeitüberschreitungen auftreten, erhöhen Sie das Zeitlimit
mit traverser.timeout=seconds
(Standardwert ist 60 Sekunden). Sie können auch die Zeitüberschreitungen für API-Anfragen erhöhen:
| Parameter | Beschreibung | Standard |
|---|---|---|
indexingService.connectTimeoutSeconds |
Zeitüberschreitung für die Verbindung bei API-Anfragen. | 120s |
indexingService.readTimeoutSeconds |
Zeitüberschreitung für das Lesen bei API-Anfragen. | 120s |