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

Google Cloud Search SDK'sı, Google tarafından sağlanan çeşitli yapılandırma içerir tüm bağlayıcılar tarafından kullanılan parametrelerdir. Bu ayarları nasıl düzenleyebileceğinizi bilirseniz, verilerin dizine eklenmesini büyük ölçüde kolaylaştıracaktır. Bu kılavuzda dizine ekleme sırasında ortaya çıkabilecek durumları ve bunları çözmek için kullanılan ayarları içerir.

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

Aşağıdaki tabloda, bir FullTraversalConnector:

Yer Açıklama Varsayılan Denenecek yapılandırma değişikliği
traverse.partitionSize Ek APIOperation() getirilmeden önce gruplar halinde işlenecek ApiOperation() sayısıdır. 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 uzun süre bekler. 50 Yüksek miktarda belleğiniz varsa partitionSize değerini 1.000 veya daha fazla olacak şekilde artırmayı deneyin.
batch.batchSize Bir arada gruplanan 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 beklemenizi gerektirir. 10 Grup boyutunu düşürmeyi deneyin.
batch.maxActiveBatches Eşzamanlı olarak yürütülebilecek grupların sayısı. 20 batchSize değerini düşürürseniz maxActiveBatches öğesini şu formüle göre artırmanız gerekir:

maxActiveBatches = (partitionSize / batchSize) + 50. Örneğin partititionSize değeriniz 1000 ve batchSize değeriniz 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 işlemesine olanak tanır.
traverse.threadPoolSize Bağlayıcının paralel işlemeye izin vermek için oluşturduğu iş parçacığı sayısı. Tek bir yineleme, işlemleri (genellikle RepositoryDoc nesne) seri olarak getirir ancak API çağrıları, threadPoolSize sayıda iş parçacığı kullanarak paralel olarak gerçekleşir. Her ileti dizisinde bir defada bir öğe işlenir. Varsayılan değer olan 50, aynı anda en fazla 50 öğeyi işler ve tek bir öğenin (dizine ekleme isteği dahil) işlenmesi yaklaşık 4 saniye sürer. 50 threadPoolSize değerini 10'un katlarıyla artırmayı deneyin.

Son olarak, API isteği modunu (ASYNCHRONOUS veya SYNCHRONOUS) değiştirmek için setRequestMode() yöntemini kullanmayı düşünebilirsiniz.

Yapılandırma dosyası parametreleri hakkında daha fazla bilgi için Google'ın sağladığı yapılandırma parametreleri.

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

Varsayılan olarak, ListTraversalConnnector yönergesini uygulayan bir bağlayıcı, bir tek gezgin kullanabilirsiniz. Dizine ekleme hızını artırmak için şunları yapabilirsiniz: her biri belirli odak noktasına sahip, kendi yapılandırmasına sahip birden çok gezgin oluşturmak öğe durumları (NEW_ITEM, MODIFIED vb.). Aşağıdaki tabloda yapılandırma ayarlarını kullanarak işleme hızını artırın:

.
YerAçıklamaVarsayılanDenenecek yapılandırma değişikliği
repository.traversers = t1, t2, t3, ...Bir veya daha fazla bağımsız geçiş yapan oluşturur. Burada t1, t2, t3, ..., her birinin benzersiz adıdır. Adlandırılmış her gezgin, gezenin benzersiz adı kullanılarak tanımlanan kendi ayar kümesine sahiptir (ör. traversers.t1.hostload ve traversers.t2.hostload)Bir gezginBaşka gezginler eklemek için bu ayarı kullanın
traversers.t1.hostload = nÖğeleri aynı anda dizine eklemek için kullanılacak ileti dizisi sayısını (n) tanımlar.5Deponuza ne kadar yük koymak istediğinize bağlı olarak n ince ayarı ile denemeler yapın. 10 veya üzeri değerlerle başlayın.
schedule.pollQueueIntervalSecs = sYeniden anket yapmadan önce beklenecek saniye sayısını (s) tanımlar . API, anket yanıtındaki öğeleri 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 (status1, status2, ) durumlarını belirtir. Örneğin, status1 politikası NEW_ITEM ve status2 değerinin MODIFIED olarak ayarlanması, gezgin t1 kullanıcısına yalnızca bu durumlara sahip öğeleri dizine eklemesi talimatını verir.Bir gezgin tüm durumları kontrol ederFarklı durumlar için farklı gezginler anketleri ile denemeler yapın.

Yapılandırma dosyası parametreleri hakkında daha fazla bilgi için Google'ın sağladığı yapılandırma parametreleri.

Büyük dosyalar yüklenirken SDK zaman aşımına uğrar veya kesintiye uğrar

Büyük dosyaları yüklerken SDK zaman aşımı veya kesintilerle karşılaşıyorsanız şunu kullanarak daha büyük bir zaman aşımı değeri belirtin: traverser.timeout=s (burada s = saniye sayısı). Bu değer, çalışanların ne kadar süreyle ileti dizisinin bir öğeyi işlemesi gerekiyor. SDK'daki varsayılan zaman aşımı süresi 60 saniyedir kullanır. Ayrıca, bağımsız API istekleri oluyorsa zaman aşımına uğraması durumunda, 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 API isteklerinin dizine eklenmesi için bağlantı zaman aşımı. 120 saniye uzunluğundadır.
indexingService.readTimeoutSeconds API isteklerinin dizine eklenmesi için okuma zaman aşımı. 120 saniye uzunluğundadır.