Quoting Jeffrey L. Taylor <[EMAIL PROTECTED]>:
> 
> I am running into problems testing with Xapian and Sphinx, both off-line index
> updating search engines (i.e., adding/changing an indexed record puts the re
> uest into a queue with the actual work done in a cronjob).  To test I can load
> the fixtures, build the index, and run tests successfully that don't add new
> records or modify the fixtures.  But I can figure out how to get the indexes
> updated between the DB modify and the search.  For Xapian I am doing the
> following from within the test program:
> 
> `rake xapian:update_index flush=true RAILS_ENV=test`
> 
> The new record doesn't make it into the index, though it does get added to the
> acts_as_xapian table.
> 

I think I've found the answer.  The key thing is that the test script is
adding a record at run time.  ActiveRecord does not commit these records.
This is so it can rollback the test database to just the fixtures after each
test.  The record ID is being passed to Xapian thru acts_as_xapian database,
but there is no such record actually in the database, just in the ActiveRecord
cache.  This problem exists for all search engines that read the database
directly instead of going thru Rails.

For the record, 
  Jeffrey

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to