Pakiet SDK Google Cloud Search zawiera dostarczone przez Google parametry konfiguracji wszystkich łączników. Dostosowanie tych ustawień może usprawnić indeksowanie danych. W tym przewodniku znajdziesz listę typowych problemów z indeksowaniem i ustawień, które pomogą je rozwiązać.
Niska przepustowość indeksowania w przypadku FullTraversalConnector
W tabeli poniżej znajdziesz ustawienia, które pozwolą zwiększyć przepustowość w przypadkuFullTraversalConnector:
| Ustawienie | Opis | Domyślny | Zaproponowana zmiana |
|---|---|---|---|
traverse.partitionSize |
Liczba ApiOperation() elementów przetwarzanych w partiach. Zanim SDK pobierze kolejne dane, czeka na zakończenie przetwarzania partycji. |
50 | Jeśli masz wystarczającą ilość pamięci, zwiększ tę wartość do 1000 lub więcej. |
batch.batchSize |
Liczba żądań zgrupowanych w pakiet. | 10 | Spróbuj zmniejszyć rozmiar partii. |
batch.maxActiveBatches |
Dozwolone równoczesne partie. | 20 | Jeśli obniżysz batchSize, zwiększ tę wartość, korzystając z tego narzędzia: (partitionSize / batchSize) + 50. |
traverse.threadPoolSize |
Liczba wątków do przetwarzania równoległego. | 50 | Zwiększaj tę wartość o wielokrotności 10. |
Aby przełączać się między trybami żądań interfejsu API ASYNCHRONOUS i SYNCHRONOUS, użyj setRequestMode().
Niska przepustowość indeksowania w przypadku ListTraversalConnector
ListTraversalConnector domyślnie używa jednego modułu przechodzenia. Aby zwiększyć przepustowość, utwórz kilka elementów przechodzących dla określonych stanów produktów (np.
NEW_ITEM, MODIFIED).
| Ustawienie | Opis | Domyślny | Zmień |
|---|---|---|---|
repository.traversers | Tworzy poszczególne moduły przechodzenia o unikalnych nazwach (np. t1, t2). | Jeden przeszukiwacz | Dodaj więcej elementów przechodzących. |
traversers.t1.hostload | Liczba wątków do jednoczesnego indeksowania elementów. | 5 | Wypróbuj wartości co najmniej 10. |
schedule.pollQueueIntervalSecs | Liczba sekund, po których ma nastąpić ponowne sprawdzanie pustej kolejki. | 10 | Spróbuj obniżyć ją do 1. |
traverser.t1.pollRequest.statuses | Stany
do zindeksowania (np. NEW_ITEM). | Wszystkie | Używaj różnych narzędzi do indeksowania w zależności od stanu. |
Przekroczenia limitu czasu lub przerwania w pakiecie SDK
Jeśli podczas przesyłania dużych plików występuje przekroczenie limitu czasu, zwiększ ten limit za pomocą traverser.timeout=seconds (domyślnie wynosi 60 sekund). Możesz też zwiększyć limity czasu oczekiwania na żądania interfejsu API:
| Parametr | Opis | Domyślny |
|---|---|---|
indexingService.connectTimeoutSeconds |
Przekroczenie limitu czasu oczekiwania na połączenie w przypadku żądań interfejsu API. | 120 s |
indexingService.readTimeoutSeconds |
Czas oczekiwania na odczyt w przypadku żądań do interfejsu API. | 120 s |