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 Sie den Durchsatz für ein
FullTraversalConnector verbessern können:
| Einstellung | Beschreibung | Standard | Vorgeschlagene Ä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 zusammengefassten Anfragen. | 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 um ein Vielfaches 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: 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 |