Frage

Also jeden Morgen meine Server booten, muss ich die folgenden Aufgaben tun ..

>> sunspot-solr stop
>> sunspot-solr start
>> script/console
>> Organization.reindex
>> Event.reindex
>> Deal.reindex
>> exit
>> script/server

Gibt es eine Möglichkeit, eine Verknüpfung machen in meiner ~ / .profile als Alias ??ohne mich das alles für mich ausführen es jeden Tag eingeben?

Wie dies obwohl es nicht funktioniert?

alias blam='cur && sunspot-solr stop && sunspot-solr start && script/console && Organization.reindex && Event.reindex && Deal.reindex && exit && script/server'
War es hilfreich?

Lösung

Vielleicht werden einige der Schmerzen lindern?

#Rakefile
desc "Reindex the organizations, events, and deals Solr indexes."
task :reindex => :environment do
  Organization.reindex
  Event.reindex
  Deal.reindex
end

Dann jeden Morgen laufen

> sunspot-solr stop
> sunspot-solr start
> rake reindex
> script/server

Andere Tipps

Dies ist mein erster Post Stackoverflow und es ist eine alte Frage, aber ich habe das Gefühl irgendwie beitragen könnte: D in regelmäßigen Abständen eine sehr teure Aufgabe Wiederaufbau des Solr-Index ist, sollten Sie tun Dinge wie diese in der Produktion vermeiden! Was Sie suchen am besten auf drei Arten erreicht werden:

1 - bearbeiten Sie sunspot.yml und fügen Sie die Zeile

auto_commit_after_request = true

Damit wird der Index zu aktualisieren sunspot wird tell jedes Mal ein neues Modell Eintrag gespeichert (oder gelöscht). Dies hält den Index aktualisiert, kann aber teuer werden.

2 - Erstellen Sie einen Rechen-Aufgabe (kann auf in einem DelayedJob Arbeiter mit cron ausgeführt werden) wie diese

task :update_index => :environment do
Sunspot.commit_if_dirty
end

Dies ist weit weniger teuer als täte ein nach jedem Modell Update begehen, aber bedenken Sie, dass diese stellt das Problem der eventuellen Konsistenz zu Ihrem Index, was in Ordnung ist für fügt aber für Löschungen böse sein: es Einträge erzeugt Waise wird in Ihrem Index. Dies ist auch ein Problem mit dem dritten Weg, um dieses Problem zu lösen ->

3 - bearbeiten Sie Ihre solrconfig.xml Datei und stellen Sie die autoCommit Funktion mit einem maxTime einem beliebigen Intervall zwischen Commits (erinnern Sie mal in Millisekunden zu verwenden). 5 Minuten wäre schön für die meisten Anwendungen, aber Sie sollten dies selbst testen.

Hope, das hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top