Dostosowywanie ustawień oprogramowania sprzęgającego

Pakiet SDK Google Cloud Search zawiera parametry konfiguracji dostarczone przez Google dla 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 łącznika FullTraversalConnector

W tabeli poniżej znajdziesz ustawienia, które pozwolą zwiększyć przepustowość w przypadku FullTraversalConnector:

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 Zwiększ tę wartość do 1000 lub więcej, jeśli masz wystarczającą ilość pamięci.
batch.batchSize Liczba żądań zgrupowanych w pakiet. 10 Spróbuj zmniejszyć wielkość wsadu.
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ń do interfejsu API ASYNCHRONOUSSYNCHRONOUS, użyj setRequestMode().

Niska przepustowość indeksowania w przypadku ListTraversalConnector

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

UstawienieOpisDomyślnyZmień
repository.traversersTworzy poszczególne elementy przechodzące o unikalnych nazwach (np. t1, t2).Jeden przeszukiwaczDodaj więcej narzędzi do przeszukiwania.
traversers.t1.hostloadLiczba wątków do jednoczesnego indeksowania elementów.5Wypróbuj wartości co najmniej 10.
schedule.pollQueueIntervalSecsLiczba sekund, po których ma nastąpić ponowne sprawdzanie pustej kolejki.10Spróbuj zmniejszyć tę wartość do 1.
traverser.t1.pollRequest.statusesStany do indeksowania (np. NEW_ITEM).WszystkieUż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 jest to 60 sekund). Możesz też zwiększyć limity czasu oczekiwania na żądania do interfejsu API:

Parametr Opis Domyślny
indexingService.connectTimeoutSeconds Przekroczenie limitu czasu oczekiwania na połączenie w przypadku żądań interfejsu API. 120 s
indexingService.readTimeoutSeconds Limit czasu odczytu w przypadku żądań do interfejsu API. 120 s