Dostosowywanie ustawień oprogramowania sprzęgającego

Pakiet SDK Google Cloud Search zawiera dostarczone przez Google parametry konfiguracyjne wszystkich łączników. Dostosowanie tych ustawień może usprawnić indeksowanie danych. W tym przewodniku znajdziesz listę typowych problemów z indeksowaniem oraz 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 przypadku FullTraversalConnector:

Ustawienie Opis Domyślny Sugerowana zmiana
traverse.partitionSize Liczba elementów ApiOperation() przetwarzanych w partiach. Pakiet SDK czeka na zakończenie przetwarzania partycji, zanim pobierze kolejne. 50 Jeśli masz wystarczającą ilość pamięci, zwiększ tę wartość do 1000 lub więcej.
batch.batchSize Liczba żądań grupowanych razem. 10 Spróbuj zmniejszyć wielkość wsadu.
batch.maxActiveBatches Dozwolone równoczesne partie. 20 Jeśli zmniejszysz wartość batchSize, zwiększ tę wartość, używając formuły: (partitionSize / batchSize) + 50.
traverse.threadPoolSize Liczba wątków do przetwarzania równoległego. 50 Zwiększaj tę wartość o wielokrotność 10.

Rozważ użycie setRequestMode(), aby przełączać się między ASYNCHRONOUS i SYNCHRONOUS trybami żądań do interfejsu API.

Niska przepustowość indeksowania w przypadku ListTraversalConnector

Domyślnie ListTraversalConnector używa jednego traversera. Aby zwiększyć przepustowość, utwórz kilka traverserów dla określonych stanów elementów (np. NEW_ITEM, MODIFIED).

UstawienieOpisDomyślnyZmień
repository.traversersTworzy poszczególne traversery o unikalnych nazwach (np. t1, t2).Jeden traverserDodaj więcej traverserów.
traversers.t1.hostloadLiczba wątków do równoczesnego indeksowania elementów.5Spróbuj użyć wartości 10 lub większej.
schedule.pollQueueIntervalSecsLiczba sekund, które należy odczekać przed ponownym sprawdzeniem pustej kolejki.10Spróbuj zmniejszyć tę wartość do 1.
traverser.t1.pollRequest.statusesStany do indeksowania (np. NEW_ITEM).WszystkieUżywaj różnych traverserów dla różnych stanów.

Limity czasu lub przerwy w pakiecie SDK

Jeśli podczas przesyłania dużych plików występują limity czasu, zwiększ limit czasu za pomocą traverser.timeout=seconds (wartość domyślna to 60 sekund). Możesz też zwiększyć limity czasu żądań do interfejsu API:

Parametr Opis Domyślny
indexingService.connectTimeoutSeconds Limit czasu połączenia dla żądań API. 120s
indexingService.readTimeoutSeconds Limit czasu odczytu dla żądań API. 120s