Pat, yep I saw that this group is moderated AFTER I tried a couple times ;) Sorry about that.
regarding the problem: well I've narrowed it down to this strange situation: Whenever I update a model by hand in the console, do a model.save the delta attribute gets set to true and I immediately see the sphinx output regarding the inclusion in the delta index and the model does show up entirely perfectly in each search-results thereafter. Now doing the same through the controller/view perspective.. it does not work and I really don't know why. Basically I have 2 models and corresponding controllers which I update by e.g. @user.update_attributes(params[:user]) (mass-assigning is bad I know, but I'll change to proper per attribute updates once the attribute changes have settled).... and then the .delta attribute -does- get set to true, but in searches this instance does no longer appear at all... only after the next complete re-index it does. I've tried explicitly .save 'ing after the update_attributes above... didn't change. Tried fiddling with manual delta-indexing calling the TS.methods for that directly.. no change. I stopped sphinx, deleted the index, re-configured, indexed, started... no change in that behaviour. It can't really be development-mode related, right? Or any sort of dirty objects/attributes related that ts doesn't pick it up? I am using passenger locally.. with the dev env.. are there maybe any quirks known with that? Hrm.. besides that it's really nothing out of the ordinary... tried uncommenting all other before/after_save/ validate callbacks just to make sure there aren't any weird things going on.. but no change either. Is there anything else I can do to narrow this down? Should these sphinx-delta-index messages that appear in the console after instance.save also appear in the dev-log when doing via the controller/ view way? Rails is 2.2.2, ruby 1.8.7, ts via normal git submodules... just checked.. have the latest version. I am kind of lost here :) Cheers, -J On Dec 26, 3:55 pm, Pat Allan <[email protected]> wrote: > Hi Jörg > > The reason your post didn't appear straight away is because there's > moderation for everyone's first posts here (to avoid spam). Sorry for > the delay in getting it approved. > > As for your delta issue - it doesn't look like you're doing anything > wrong. Can you confirm you've restarted Sphinx (and re-indexed > inbetween stopping and starting) after adding the delta property? I'm > expecting you have though, which may mean the problem is how Sphinx > treats separate indexes. > > If the latter is the case, I can't offer much in the way of solutions, > except that I'm hoping to have a fix soon - Sphinx can merge indexes, > and so I want to get TS to a point where after running a delta index > it merges the results back into the core index (and so it gets treated > all as a single dataset again). > > Unfortunately, I'm not sure when I can get a solution done though (a > common statement of mine on this list, sadly). Hoping to have more > time to tackle TS improvements over the next month though. > > One other caveat - it takes Sphinx a second (maximum, although I guess > that would depend on local index sizes, etc) to catch up with the new > values in delta indexes - but I'm guessing there's a slight delay > between making your new instance and testing the search, so I doubt > that's the problem. > > Cheers > > -- > Pat > > On 26/12/2008, at 1:31 AM, Jörg Battermann wrote: > > > > > > > Hey there, > > > I am pretty sure I am doing something wrong, but for some reason new > > entries/instances of a model which has the delta-index declaration > > included do not show up in a generic, empty ("") search on that > > model... > > > The ts declaration is like that: > > > define_index do > > indexes title, :sortable => true > > indexes cached_plaintext_question, :as => :question > > indexes answers.cached_plaintext_body, :as => :answers > > indexes cached_tag_list, :as => :tags > > indexes user.name, :as => :user > > indexes answered_by, user_id > > > has created_at > > has answers(:id), :as => :answer_ids > > set_property :delta => true > > end > > > Now after creating a new new question (that's the model that's being > > indexed/searched), and going back to the controller's index, which has > > the following search code: > > > @search_options = { > > :page => (params[:page] || 1), > > :per_page => Question.per_page, > > :include => :user, > > :order => "created_at DESC", > > :match_mode => :extended > > } > > > @questions = Question.search((params[:search] || ""), @search_options) > > > .... @questions does not contain this new instance mentioned above, > > but does after a full (re-)index. > > > Why's that? > > > Cheers, thanks & merry x-mas to everyone :) > > -Jörg --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Thinking Sphinx" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/thinking-sphinx?hl=en -~----------~----~----~----~------~----~------~--~---
