h1. Delayed Deltas for Thinking Sphinx h2. Installation You'll need Thinking Sphinx 1.3.0 or later, and Delayed Job as well. The latter is flagged as a dependency.
gem install ts-delayed-delta --source http://gemcutter.org
In your @environment.rb@ file, with the rest of your gem dependencies:
config.gem 'ts-delayed-delta',
  :lib     => 'thinking_sphinx/deltas/delayed_delta',
  :version => '>= 1.0.0',
  :source  => 'http://gemcutter.org'
And add the following line to the bottom of your @Rakefile@:
require 'thinking_sphinx/deltas/delayed_delta/tasks'
If this is your first time running Delayed Job, then you're going to need the jobs table migration as well:
script/generate delayed_job
For the indexes you want to use this delta approach, make sure you set that up in their @define_index@ blocks.
define_index do
  # ...
  
  set_property :delta => :delayed
end
If you've never used delta indexes before, you'll want to add the boolean column named delta to each model that is using the approach.
def self.up
  add_column :articles, :delta, :boolean, :default => true, :null => false
end
h2. Usage Once you've got it all set up, all you need to do is make sure that the delayed job process is running - either by Delayed Job's built-in approach, or Thinking Sphinx's custom rake task:
rake thinking_sphinx:delayed_delta
There's also a short name for the same task, to save your fingers some effort:
rake ts:dd
h2. Contributors * "Ryan Schlesinger":http://github.com/ryansch (Allowing installs as a plugin) * "Maximilian Schulz":http://max.jungeelite.de (Ensuring compatibility with Bundler) * "Edgars Beigarts":http://github.com/ebeigarts (Adding intelligent description for tasks) * "Alexander Simonov":http://simonov.me/ (Explicit table definition) * "David Goodlad":http://david.goodlad.ca/ (Delayed Job/ActiveRecord load order fix) * "Ben Hutton":http://www.benhutton.com/ (Delayed Job compatibility update) h2. Copyright Copyright (c) 2009-2010 Pat Allan, and released under an MIT Licence.