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

Google Cloud Search SDK'da, tüm bağlayıcılar tarafından kullanılan, Google tarafından sağlanan çeşitli yapılandırma parametreleri bulunur. Bu ayarları nasıl yapılandıracağınızı bilmek, verilerin dizine eklenmesini büyük ölçüde kolaylaştırabilir. Bu kılavuzda, dizine ekleme sırasında ortaya çıkabilecek bazı sorunlar ve bunları çö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 işleme hızını iyileştirmek amacıyla yapılandırma ayarları listelenmiştir:

Ayar Açıklama Varsayılan Denemek için yapılandırma değişikliği
traverse.partitionSize Ek APIOperation() getirilmeden önce toplu olarak işlenecek ApiOperation() sayısı. SDK, ek öğeleri 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 adına daha fazla bekler. 50 Çok fazla belleğiniz varsa partitionSize değerini 1.000 veya üzerine çıkarmayı deneyin.
batch.batchSize Birlikte toplu olarak toplanan isteklerin sayısı. Bölümlendirmenin sonunda SDK, tüm toplu isteklerin bölümden işlenmesini bekler. Daha büyük gruplar daha uzun süre bekler. 10 Grup boyutunu azaltmayı deneyin.
batch.maxActiveBatches Aynı anda yürütülen izin verilen grupların sayısı. 20 batchSize değerini düşürürseniz maxActiveBatches hareketini şu formüle göre yapmanız gerekir:

maxActiveBatches = (partitionSize / batchSize) + 50. Örneğin, partititionSize değeriniz 1000 ve batchSize metriğiniz 5 ise maxActiveBatches değeriniz 250 olmalıdır. Fazladan 50, yeniden deneme istekleri için bir tampondur. Bu artış, bağlayıcının tüm istekleri engellemeden toplu olarak oluşturmasına olanak tanır.
traverse.threadPoolSize Bağlayıcının paralel işleme için oluşturduğu iş parçacığı sayısı. Tek bir yineleyici, işlemleri (genellikle RepositoryDoc nesne) seri olarak getirir ancak API çağrıları, threadPoolSize sayıda iş parçacığı kullanarak paralel olarak işlenir. Her iş parçacığı tek seferde bir öğe işler. Varsayılan 50 değeri, aynı anda en fazla 50 öğeyi işler ve tek bir öğenin işlenmesi (dizine ekleme isteği dahil) yaklaşık 4 saniye sürer. 50 threadPoolSize değerini 10'un katını artırmayı deneyin.

Son olarak, API isteği 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 parametrelerine bakın.

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

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

.
AyarAçıklamaVarsayılanDenemek için yapılandırma değişikliği
repository.traversers = t1, t2, t3, ...t1, t2, t3, ..., her birinin benzersiz adıdır. Bu nedenle, bir veya daha fazla bağımsız ileti oluşturur. Adı geçen her bir izleyicinin, kendisine ait benzersiz ad (ör. traversers.t1.hostload ve traversers.t2.hostload) kullanılarak tanımlanan kendi ayar grubu vardır.Bir yolcuBaşka yayalar eklemek için bu ayarı kullanın
traversers.t1.hostload = nÖğeleri eşzamanlı olarak dizine eklemek için kullanılacak iş parçacığı sayısını (n) tanımlar.5Deponuza ne kadar yük yüklemek istediğinize göre n ayarlamasıyla denemeler yapın. 10 veya daha büyük değerlerle başlayın.
schedule.pollQueueIntervalSecs = sYeniden anket yapılmadan ö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ısı öğeleri yoklamaya 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ır101'e düşürmeyi deneyin.
traverser.t1.pollRequest.statuses = status1, status2, …Dizine eklenecek öğelerin durumlarını (status1, status2, ) belirtir. Örneğin, status1 öğesinin NEW_ITEM ve status2 değerinin MODIFIED olarak ayarlanması, t1 adlı gezinen kullanıcıya yalnızca bu duruma sahip öğeleri dizine eklemesi talimatını verir.Gezgin, tüm durumları kontrol ederFarklı durumlar için farklı gezginler anketi yapmayı deneyin.

Yapılandırma dosyası parametreleri hakkında daha fazla bilgi için Google tarafından sağlanan yapılandırma parametrelerine bakın.

Büyük dosyalar yüklenirken SDK zaman aşımları veya kesintiler meydana geliyor

Büyük dosyaları yüklerken SDK zaman aşımı veya kesintilerle karşılaşırsanız traverser.timeout=s öğesini kullanarak daha büyük bir zaman aşımı değeri belirtin (s = saniye sayısı). Bu değer, çalışan iş parçacıklarının bir öğeyi ne kadar süreyle işlemesi gerektiğini tanımlar. SDK'daki varsayılan zaman aşımı, geçiş yapan iş parçacıkları için 60 saniyedir. Ayrıca, bağımsız API istekleri zaman aşımıyla karşılaşırsanız 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'si istekleri için bağlantı zaman aşımı. 120 saniye.
indexingService.readTimeoutSeconds Dizine ekleme API'si istekleri için okuma zaman aşımı. 120 saniye.