Hey Pat,

Thanks for your reply!

>From your explanation, I understand where my problem comes from:
Some courses are not associated to any event... so when I search for
courses associated to events with day_of_week = 0 it also returns the
courses that are not associated to any event.

Is there any workaround so that when I search for 0 it doesn't return
the courses not associated with any event? (if not, I'll have to
migrate my events so that I don't use day_of_week = 0 anymore)

Thanks again!
Alex



On Aug 3, 7:07 pm, Pat Allan <[email protected]> wrote:
> Hi Alex
>
> A couple of suggestions:
>
> * Remove the :type => :integer from the attribute - you're dealing with an 
> array of integers, not a single one, so this just confuses Sphinx. TS is 
> smart enough to recognise arrays of integers.
>
> * Use actual integers, not integers-as-strings, in your filter.
>
> Also, it's worth noting that Sphinx treats NULLs as 0's - so if you have 
> events attached to a course which have NULL for the day_of_week, it'll come 
> through as 0.
>
> Hope this helps.
>
> --
> Pat
>
> On 04/08/2010, at 11:47 AM, alex wrote:
>
>
>
> > Hello,
>
> > I'm having a problem searching for attributes with a value equal to 0.
>
> > Here is what happen in irb:
>
> >>> Course.search(:with=> {:days=>["2"]})
> >  returns the corresponding records
>
> >>> Course.search(:with=> {:days=>["0"]})
> >  returns all the records, while I'm expecting only a few records to
> > be returned.
>
> > Here are the pieces of code I think are involved:
>
> > course.rb
> >    has_many :events, :through => :tracks
> >    ...
> >    define_index do
> >      has events(:day_of_week), :as => :days,  :type => :integer
> >    end
> >    ...
> >    def self.advanced_search(search, sort = nil)
> >      with_params = {}
> >      ...
> >      if (!search.days.empty?)
> >        with_params[:days] = search.days
> >      end
> >      ...
> >      search(
> >        search.keywords,
> >        :with => with_params,
> >        :sort_mode => sort_params[:sort_mode],
> >        :order => sort_params[:order]).collect
> >    end
> >  end
>
> > Can anybody help me understand why I don't get the expected result?
>
> > Thanks!
> > Alex
>
> > --
> > 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 
> > athttp://groups.google.com/group/thinking-sphinx?hl=en.

-- 
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.

Reply via email to