Bağlayıcı ayarlarını düzenleyin

Google Cloud Search SDK'sı, tüm bağlayıcılar tarafından kullanılan ve Google tarafından sağlanan çeşitli yapılandırma parametreleri içerir. Bu ayarları nasıl ayarlayacağınızı bilmek, verilerin dizine eklenmesini büyük ölçüde kolaylaştırabilir. Bu kılavuzda, dizine ekleme sırasında ortaya çıkabilecek çeşitli sorunlar ve bu sorunları çözmek için kullanılan ayarlar listelenmiştir.

FullTraversalConnector için dizine ekleme işleme hızı düşük

Aşağıdaki tabloda, FullTraversalConnector için veri akışını iyileştirmeye yönelik yapılandırma ayarları listelenmiştir:

Yer Açıklama Varsayılan Denenecek yapılandırma değişikliği
traverse.partitionSize Ek APIOperation() getirilmeden önce toplu olarak işlenecek ApiOperation() sayısı. SDK, ek öğeler getirmeden önce mevcut bölümün işlenmesini bekler. Bu ayar, kullanılabilir bellek miktarına bağlıdır. 50 veya 100 gibi daha küçük bölüm boyutları daha az bellek gerektirir ancak SDK için daha fazla bekleme süresi gerektirir. 50 Yeterli belleğiniz varsa partitionSize değerini 1.000 veya daha fazla artırmayı deneyin.
batch.batchSize Birlikte gruplandırılan isteklerin sayısı. Bölümlendirmenin sonunda SDK, tüm toplu isteklerin bölümden işlenmesini bekler. Daha büyük gruplar için daha uzun süre beklemeniz gerekir. 10 Grup boyutunu düşürmeyi deneyin.
batch.maxActiveBatches Eşzamanlı olarak çalıştırılabilecek toplu işlem sayısı. 20 batchSize değerini düşürürseniz maxActiveBatches değerini şu formüle göre artırmanız gerekir:

maxActiveBatches = (partitionSize / batchSize) + 50. Örneğin, partititionSize değeriniz 1.000 ve batchSize değeriniz 5 ise maxActiveBatches değeriniz 250 olmalıdır. Ek 50, yeniden deneme istekleri için bir arabellektir. Bu artış, bağlayıcının engellemeden tüm istekleri toplu olarak göndermesine olanak tanır.
traverse.threadPoolSize Konnektörün paralel işlemeye izin vermek için oluşturduğu iş parçacıklarının sayısı. Tek bir iteratör, işlemleri (genellikle RepositoryDoc nesnesi) seri olarak getirir ancak API çağrıları threadPoolSize sayıda iş parçacığı kullanarak paralel olarak işler. Her mesaj dizisi bir seferde bir öğe işler. Varsayılan 50 değeri, aynı anda en fazla 50 öğe işlenir ve tek bir öğenin işlenmesi yaklaşık 4 saniye sürer (dizine ekleme isteği dahil). 50 threadPoolSize değerini 10'un katı olacak şekilde artırmayı deneyin.

Son olarak, API istek modunu (ASYNCHRONOUS veya SYNCHRONOUS) değiştirmek için setRequestMode() yöntemini kullanabilirsiniz.

Yapılandırma dosyası parametreleri hakkında daha fazla bilgi için Google tarafından sağlanan yapılandırma parametreleri bölümüne bakın.

ListTraversalConnector için dizine ekleme işleme hızı düşük

ListTraversalConnnector'ı uygulayan bir bağlayıcı, varsayılan olarak öğelerinizi dizine eklemek için tek bir gezgin kullanır. Dizine ekleme işleminin iş hacmini artırmak için belirli öğe durumlarına (NEW_ITEM, MODIFIED vb.) odaklanan, her biri kendi yapılandırmasına sahip birden fazla gezgin oluşturabilirsiniz. Aşağıdaki tabloda, veri akışını iyileştirmeye yönelik yapılandırma ayarları listelenmiştir:

.
YerAçıklamaVarsayılanDenenecek yapılandırma değişikliği
repository.traversers = t1, t2, t3, ...t1, t2, t3, ... her birinin benzersiz adı olmak üzere bir veya daha fazla ayrı gezgin oluşturur. Her adlandırılmış gezginin, gezginin benzersiz adı (ör. traversers.t1.hostload ve traversers.t2.hostload) kullanılarak tanımlanan kendi ayar grubu vardır.Bir geçiş aracıEk tarayıcılar eklemek için bu ayarı kullanın
traversers.t1.hostload = nÖğeleri aynı anda dizine eklemek için kullanılacak ileti dizilerinin sayısını (n) tanımlar.5Deponuzdan ne kadar yük almak istediğinize bağlı olarak n'ü ayarlama denemeleri yapın. 10 veya daha yüksek değerlerle başlayın.
schedule.pollQueueIntervalSecs = sYeniden anket yapmadan önce beklenecek saniye sayısını (s) tanımlar . API, anket yanıtında öğeler döndürdüğü sürece içerik bağlayıcı, öğeleri ankete almaya devam eder. Anket yanıtı boş olduğunda bağlayıcı, tekrar denemeden önce s saniye bekler. Bu ayar yalnızca ListingConnector tarafından kullanılır.101'e düşürmeyi deneyin.
traverser.t1.pollRequest.statuses = status1, status2, …Dizine eklenecek öğelerin durumlarını (status1, status2, ) belirtir. Örneğin, status1NEW_ITEM ve status2'yi MODIFIED olarak ayarlamak, t1 gezginine yalnızca bu duruma sahip öğeleri dizine eklemesini söyler.Bir gezgin tüm durumları kontrol ederFarklı durum için farklı tarayıcıların anket yapmasını deneyebilirsiniz.

Yapılandırma dosyası parametreleri hakkında daha fazla bilgi için Google tarafından sağlanan yapılandırma parametreleri bölümüne bakın.

Büyük dosyalar yüklenirken SDK zaman aşımına uğrar veya kesinti yaşanır

Büyük dosyaları yüklerken SDK zaman aşımı veya kesinti yaşıyorsanız traverser.timeout=s (s = saniye sayısı) kullanarak daha uzun bir zaman aşımı belirtin. Bu değer, işleyici iş parçacıklarının bir öğeyi işlemesi için ne kadar süre gerektiğini tanımlar. SDK'da varsayılan zaman aşımı, tarayıcı ileti dizileri için 60 saniyedir. Ayrıca, API isteklerinin zaman aşımına uğradığını fark ederseniz istek zaman aşımı değerlerini artırmak için aşağıdaki yöntemleri kullanın:

İstek zaman aşımı parametresi Açıklama Varsayılan
indexingService.connectTimeoutSeconds Dizine ekleme API isteklerinde bağlantı zaman aşımı. 120 saniye.
indexingService.readTimeoutSeconds Dizine ekleme API isteklerinin okuma zaman aşımı. 120 saniye.