2011-12-30 10 views
18

Moja aplikacja zwykle zajmuje 20 minut, aby ponownie wyświetlić indeks jako całość. Jest mały stolik z kilkoma rekordami, które chcę ponownie zindeksować. Chcę zaoszczędzić czas, więc uruchomiłem polecenie rake sunspot:solr:reindex[500,Deal]. Jest on pobierany bezpośrednio z Github readme i ma na celu ponowne indeksowanie tylko jednego modelu.Ponowne indeksowanie określonego modelu w plamach słonecznych wydaje się nie robić żadnej różnicy w czasie.

Czas potrzebny na ponowne wyindeksowanie w tym poleceniu to nadal 20 minut, więc nie ma różnicy w czasie wykonania. czy robię coś źle?

Odpowiedz

30

byłem w w tej samej sytuacji, w której pytasz, dlaczego zajmuje to samo.

Rozwiązanie: usuń ": solr". Wystarczy napisać:

rake sunspot:reindex[batch_size,Model] 

Jeśli nie określić batch_size trzeba tu postawić przecinek „” jak:

rake sunspot:reindex[,model] 
+1

to działa i dziękuje! Ale poszukiwacze odpowiedzi powinni pamiętać, że poniższe rozwiązanie IRB będzie szybsze. – lulalala

+6

Musiałem zacytować nawiasy w zshell 'rake sunspot: reindex \ [, model \]'. – iltempo

26

ja teraz przejść do konsoli Rails i stamtąd zadzwonić REINDEX:

Deal.solr_reindex(:batch_size => 1000, :include => :period) 

Działa to wielkie jak mogę teraz reindex tylko jeden model, m.in. związanych z tabel w celu poprawy szybkości. Poprzednio indeksował tylko 200/s, a teraz wynosi 1000/s.

(W rzeczywistości, ponieważ reindeksowania pośrednictwem konsoli lub prowizji skasuje plik indeksu, powodując w krótkim okresie pustego wskaźnika, teraz nazywają solr_index większość czasu na aktualizację indeksu.)

+2

Zadanie grabie do reindeksowania jest nieco naiwne. Wąskim gardłem są tutaj zapytania N + 1 do bazy danych dla powiązanych obiektów, a użycie ': include' w konsoli pozwala zaoszczędzić sporo kosztów, które w przeciwnym razie zostałyby poniesione w zadaniu rake. –

+2

mały dodatek do tego rozwiązania: dołączone modele muszą być pisane małymi literami i w zależności od ich rodzaju relacji w liczbie pojedynczej lub mnogiej –

Powiązane problemy