2010-03-23 26 views
12

Solr 1.4 Enterprise Search Server, çekirdeğin bir kopyasında büyük güncelleştirmeler yapılmasını ve ardından ana çekirdek için değiştirilmesini önerir. Bu adımları takip ediyorum:Varolan verilerden bir solr çekirdeği nasıl oluşturabilirim?

  1. hazırlık çekirdeğini oluşturun: http://localhost:8983/solr/admin/cores?action=CREATE&name=prep&instanceDir=main
  2. /sonra işlemek, endeks güncellemesi yapılsın hazırlık çekirdeğine optimize eder.
  3. Swap ana ve hazırlık çekirdek: http://localhost:8983/solr/admin/cores?action=SWAP&core=main&other=prep
  4. Boşaltma hazırlık çekirdek: http://localhost:8983/solr/admin/cores?action=UNLOAD&core=prep

ben yaşıyorum sorundur, 1. adımda oluşturulan çekirdek içinde herhangi bir veri yoktur. Eğer her şeyi ve mutfak lavabosunu tam olarak indeksleyeceksem, bu iyi olurdu, ama eğer belgelerin (büyük) bir alt kümesini güncellemek istersem, bu açıkça işe yaramayacak.

(I çekirdek birleştirme, ama onları bir listesini yapmaya çalışıyorum olmadan herhangi silinen belgelerin kurtulmak yapmaya çalışıyorum şeyin bir parçası olabilir.)

CREATE eyleme bazı bayrak var mı ben özlüyorum Solr Wiki page for CoreAdmin, ayrıntılarda biraz seyrek.

Olası Çözüm: Çoğaltma Solr-kullanıcı

Birisi çoğaltma kullanarak önerdi. Bu senaryoda kullanmak için yaptığınız gibi (benim anlayışına) Aşağıdaki adımlar gerektirir:

  1. Değişim ANA çekirdeğin yapılandırma ustası olmak için yola dayalı ANA çekirdeğin yapılandırma yeni PREP çekirdeğini oluşturma
  2. PREP çekirdeğinin yapılandırmasını köle olarak değiştirin
  3. Neden/bekletme bekle?
  4. PREP çekirdeğinin yapılandırmasını artık bir köle olmaktan değiştirmek için
  5. Dizin güncelleştirmesi gerçekleştirin, ardından PREP çekirdeği üzerinde işlem yapın/optimize edin.
  6. takas HAZIRLIK ve ANA çekirdekler

daha basit bir replikasyon göre kurulum her zaman ana olan kalıcı PREP çekirdek konfigüre olacaktır. MAIN çekirdeği (gerektiği kadar sunucuda olduğu gibi) daha sonra PREP çekirdeğinin bir kölesi olabilir. İndeksleme PREP çekirdeğinde hızlı veya gerektiği kadar yavaş olabilir.

Olası Çözüm: Daimi HAZIRLIK çekirdek ve

bu (aynı zamanda kalıcı bir PREP çekirdeği içeren) idi ile geldi başka bir fikir çift güncelleme:

  1. endeks güncellemesi yapılsın, sonra işlemek/optimize PREP çekirdeği.
  2. PREP ve MAIN çekirdeklerini değiştirin.
  3. Dizin güncellemesini yeniden gerçekleştirin, ardından şimdi PREP çekirdeği olanı yapın/optimize edin. Şimdi, MAIN çekirdeği (teoride) ile aynı verilere sahip ve bir sonraki dizin işlemi için hazır olacak.
+0

Bu yordamın her şeyi yeniden doldurmak için tasarlandığını düşünüyorum. Endekslemek için ne kullanıyorsunuz? DIH veya özel bir süreç? –

+0

Özel bir işlem. – stannius

+0

belgeleri aynı çekirdek üzerinde yeni güncellemeyi denediniz mi? gerçekten bu kadar kötü mü yapıyor? –

cevap

3

Dizinler ve yapılandırma verilerinin dosya sistemi kopyasını yapan ve sonra da CREATE yeni bir klon işlemi fikrini oluşturdum. Bazı kilitleme sorunları var ve dizinlere dosya sistemine erişiminiz olmalı, ancak işe yaradı. Bu size yapılandırma dosyaları ile uğraşabileceğiniz güzel bir kopyasını veriyor.

daha bunu düşünmek, yeni bir çekirdek CREATE olabileceğini ve bu yapın:

ana komutundan köle bir fetchindex zorla: http://slave_host:port/solr/replication?command=fetchindex Ekstra özniteliği 'masterUrl' veya diğer geçmek mümkündür Bir ana bilgisayardan bir kez çoğaltma yapmak için 'sıkıştırma' (veya etikette belirtilen herhangi bir başka parametre) gibi özellikler. Bu, efendinin köle kodlaması ihtiyacını ortadan kaldırır.

Yeni olanı üretim biriminden doldurun, sonra güncelleştirmelerinizi uygulayın ve sonra geri değiştirin!