Delayed Deltas for Thinking Sphinx (with Resque)

Build Status

This code is HEAVILY borrowed from ts-delayed-delta.

Installation

This gem depends on the following gems: thinking-sphinx and resque.

Currently, you'll need Thinking Sphinx v1.5.0 (for Rails 2), v2.1.0 (for Rails 3), or - ideally - v3.0.3 or newer (for Rails 3.1 onwards). If you're on a version of Thinking Sphinx that's too old, you better go upgrade - but otherwise, add ts-resque-delta to your Gemfile file with the rest of your gem dependencies:

gem 'ts-resque-delta', '~> 2.0.0'

Add the delta property to index definition. If you're using Thinking Sphinx v3, then it'll look something like this:

ThinkingSphinx::Index.define(:article,
  :with  => :active_record,
  :delta => ThinkingSphinx::Deltas::ResqueDelta
) do
  # fields and attributes and so on...
end

But if you're still using v1.5 or v2.1, you'll want the following:

define_index do
  # fields and attributes and so on...

  set_property :delta => ThinkingSphinx::Deltas::ResqueDelta
end

If you've never used delta indexes before, you'll need to add the boolean column named :delta to each table for indexed models. A database index for that column is also recommended.

def change
  add_column :articles, :delta, :boolean, :default => true, :null => false
  add_index  :articles, :delta
end

Usage

Once you've got it all set up, all you need to do is make sure that the Resque worker is running. You can do this by specifying the ts_delta queue when running Resque:

QUEUE=ts_delta,other_queues rake resque:work

Contributors (for ts-resque-delta)

Original Contributors (for ts-delayed-delta)

Copyright (c) 2011-2014 Aaron Gibralter and Pat Allan, and released under an MIT Licence.