> I have updated a large number of records by calling ActiveRecord's
> update_all on a model that is indexed with ts.
>
> It seems that the boolean delta column is not being set to true by
> update_all.
>
> Should I manually set delta=true as part of the update_all?  If so is
> there then something I should do to trigger the delta update to occur
> (after the update_all call)?
Toggling the delta flag is done in a before_save callback, and delta
indexing is triggered in an after_commit hook. Problem is update_all
bypasses those.
I think the best you can do as of this version of TS is to include
delta = 1 in update_all and then send(:index_delta) to any of them
(one of them suffices to have all of them indexed.)
Cheers
-- 
Pat
There's a nice fork on github that allows "offline delta indexing".
http://github.com/bassnode/thinking-sphinx/commit/e54af20c434a5929d0ef77822b26a721ad1ac8be
With the new setting enabled, delta will still be set to 1 in the
database when a model changes, but rebuilding the delta index is left up
to the developer.
Depending on the application, if changed records don't need to be
searchable instantly, you could have a cron job setup to rebuild the
delta indexes every 5-10 minutes. This would avoid the expensive shell
call from rails.
-- James Healy <jimmy-at-deefa-dot-com>  Wed, 13 Aug 2008 09:54:08 +1000