Datetime Deltas for Thinking Sphinx
This fork should hopefully make it a bit more Rails 3 compatible, by moving the task to the lib/tasks folder and renaming the file to delta.rake.
Using this strategy delta.rake should be merged with the Rails 3 app lib/tasks folder and should thus be recognized by rake.
You’ll need Thinking Sphinx 1.3.0 or later.
gem install ts-datetime-delta --source http://gemcutter.org
environment.rb file, with the rest of your gem dependencies:
config.gem 'ts-datetime-delta', :lib => 'thinking_sphinx/deltas/datetime_delta' :version => '>= 1.0.0', :source => 'http://gemcutter.org'
And add the following line to the bottom of your
For the indexes you want to use this delta approach, make sure you set that up in their
define_index do # ... set_property :delta => :datetime end
If you want to use a column other than
updated_at, you can specify it using the
:delta_column option. The same goes for the threshold, which defaults to one day.
set_property :delta => :datetime, :threshold => 1.hour, :delta_column => :changed_at
Then, while your Rails application is running, you’ll need to run the delta indexing rake task regularly – as often as your threshold, allowing for some time for the indexing to actually happen.
For example, if you’re going to run the delta indexing task every hour, I would recommend setting your threshold to 70 minutes.
To ensure this rake task is called regularly, it’s best to set it up as a recurring task via cron or similar tools.
The shorthand version is:
Copyright © 2009 Pat Allan, and released under an MIT Licence.