Skip to content

Background search indexing using existing worker systems

License

Notifications You must be signed in to change notification settings

Lightspeed-Systems/sunspot-queue

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sunspot-queue Build Status

Background search indexing using existing worker systems.

Install

$ gem install sunspot-queue

Usage with Rails and Resque

In your Gemfile

gem "sunspot-queue"
gem "resque"

In config/initializers/sunspot.rb

require "sunspot/queue/resque"
backend = Sunspot::Queue::Resque::Backend.new
Sunspot.session = Sunspot::Queue::SessionProxy.new(Sunspot.session, backend)

Start Resque

$ QUEUE=sunspot rake resque:work

Usage with Rails and Sidekiq

In your Gemfile

gem "sunspot-queue"
gem "sidekiq"

In config/initializers/sunspot.rb

require "sunspot/queue/sidekiq"
backend = Sunspot::Queue::Sidekiq::Backend.new
Sunspot.session = Sunspot::Queue::SessionProxy.new(Sunspot.session, backend)

Start Sidekiq

$ sidekiq -q sunspot

Usage with Rails and Delayed::Job

In your Gemfile

gem "sunspot-queue"
gem "delayed_job"
gem "delayed_job_active_record"     # or choose another backend

In config/initializers/sunspot.rb

require "sunspot/queue/delayed_job"
backend = Sunspot::Queue::DelayedJob::Backend.new
Sunspot.session = Sunspot::Queue::SessionProxy.new(Sunspot.session, backend)

Start Delayed::Job

$ rake jobs:work 

Configuring Sunspot Queue

In config/initializers/sunspot.rb

Sunspot::Queue.configure do |config|
  # Override default job classes
  config.index_job   = CustomIndexJob
  config.removal_job = CustomRemovalJob
end

Configuring Auto Commit

The sunspot-queue jobs update the Solr index but those changes don't appear in search results until Solr commits those changes. Solr supports automatically commiting changes based on either the number of changes and / or time between commits.

Add (or uncomment) the following in solrconfig.xml

<autoCommit>
  <maxDocs>10000</maxDocs>
  <maxTime>30000</maxTime>
</autoCommit>

See Solr's documentation for more information.

Note on Patches/Pull Requests

  • Fork the project.
  • Add tests to show the problem or test your feature
  • Make your feature addition or bug fix.
  • Send me a pull request. Bonus points for topic branches.

Please don't make changes to the Rakefile, version, or history.

Development

$ gem install bundler
$ bundle
$ guard

Copyright

See LICENSE for details.

About

Background search indexing using existing worker systems

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%