Skip to content

Instantly share code, notes, and snippets.

@doitian
Created February 11, 2012 02:17
Show Gist options
  • Save doitian/1795439 to your computer and use it in GitHub Desktop.
Save doitian/1795439 to your computer and use it in GitHub Desktop.
sunspot solr in capistrano
namespace :deploy do
task :setup_solr_data_dir do
run "mkdir -p #{shared_path}/solr/data"
end
end
namespace :solr do
desc "start solr"
task :start, :roles => :app, :except => { :no_release => true } do
run "cd #{current_path} && RAILS_ENV=#{rails_env} bundle exec sunspot-solr start --port=8983 --data-directory=#{shared_path}/solr/data --pid-dir=#{shared_path}/pids"
end
desc "stop solr"
task :stop, :roles => :app, :except => { :no_release => true } do
run "cd #{current_path} && RAILS_ENV=#{rails_env} bundle exec sunspot-solr stop --port=8983 --data-directory=#{shared_path}/solr/data --pid-dir=#{shared_path}/pids"
end
desc "reindex the whole database"
task :reindex, :roles => :app do
stop
run "rm -rf #{shared_path}/solr/data"
start
run "cd #{current_path} && RAILS_ENV=#{rails_env} bundle exec rake sunspot:solr:reindex"
end
end
after 'deploy:setup', 'deploy:setup_solr_data_dir'
@cec
Copy link

cec commented May 3, 2013

This solution does not work for me, as starting solr in this way does not use the schema.xml file in the app's root, but the one in the sunspot_solr gem dir.

I noticed this as I had a custom analyzer and after moving to this solution, I was not getting expected results anymore.

You can find my solution at https://gist.github.com/cec/5508303

@mshappe
Copy link

mshappe commented May 25, 2013

👍

@n8gard
Copy link

n8gard commented Jul 8, 2013

This is great. One thing I am unclear about: do/can you run more than one instance of Sunspot/Solr? If I have capistrano deploy to multiple servers (in EC2, for example) with :web and :app roles, will each server maintain and provide an index? Or do I define a new role, mapped to only one server that runs Sunspot/Solr?

@mookie-
Copy link

mookie- commented Aug 6, 2013

Hi, thanks for sharing this. I'm also interested how to use Sunspot/Solr with multiple servers. It would be great if someone could answer njnorrgard questions.

@hminaya
Copy link

hminaya commented Aug 14, 2013

thanks, it helped me out.

@bradens
Copy link

bradens commented Oct 15, 2013

I'm also interested in a multiple server solr setup, anyone know?

@muscardinus
Copy link

Thank you!

For anyone who moved to Capistrano 3, I made an updated version: https://gist.github.com/muscardinus/8884801

@uetchy
Copy link

uetchy commented Apr 22, 2014

Thanks a lot!!

@tamvm
Copy link

tamvm commented May 25, 2014

Anyone has same solution for mina (http://nadarei.co/mina/)? Thanks

@richardrails
Copy link

any solution for Mina?

@lalitlogical
Copy link

Thanks, but this solution does not work for me.

I have below version for Sunspot, etc.

sunspot_solr 2.2.7
sunspot 2.2.7
sunspot_rails 2.2.7

For Capistrano 3, I have made an updated version: https://gist.github.com/lalitlogical/4c8c047b95fe45da6ae19d1b59411783

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment