Thanks so much for that Pat, been scratching my head the last couple of
hours (and i do have other attributes in there too!)

FWIW, i think you cast as an unsigned in Mysql

has "cast(price as unsigned)", :type=>:integer, :as=> :sphinx_price,
:sortable=>true

cheers

jon


On Thu, Aug 19, 2010 at 11:30 PM, Pat Allan <[email protected]>wrote:

> Hi Jon
>
> There's a couple of things to keep in mind that should get you on the way
> to what you want:
> * :with is for attributes (not fields) - and you definitely want an
> attribute when dealing with numbers.
> * If your attribute is a float (which is what decimals get converted to),
> you'll need to filter by floats.
>
> So, change that 'indexes' line to a 'has' line (and remember - attributes
> are sortable by Sphinx without any trickery):
>
>  has price
>
> And then for filtering:
>
>  Event.search '*a*', :with => {:price => 1.0..1000.0}
>
> You could try aiming for exact values, but not sure how reliable that is
> with floating point values...
>
>  Event.search '*a*', :with => {:price => 11.0}
>
> If that doesn't work, try the following:
>
>  Event.search '*a*', :with => {:price => 10.59..11.01}
>
> One last unrelated thing: if you always want stars around each word, just
> use :star => true when searching :)
>
> Hope this helps.
>
> --
> Pat
>
> On 19/08/2010, at 11:49 PM, Jon wrote:
>
> > Hi
> >
> > I'm trying to index a decimal(8,2) field in MySQL.
> >
> > I'm trying to do it like this in the model:
> > define_index do
> >   indexes "cast(price as unsigned)", :as=> :sphinx_price, :sortable=>true
> > end
> >
> > I rebuild the index and try to search, but nothing seems to work:
> > e=Event.search :with=>{:sphinx_price=>11}
> > e=Event.search "*a*" :with=>{:sphinx_price=>11}
> >
> > I really want it to find a range, but this doesn't work either:
> > e=Event.search "*a*" :with=>{:sphinx_price=>1..1000}
> >
> > They just return empty set, if i do a:
> > e=Event.search "*a*"
> > I get all the results I expect to.....
> >
> >
> > Any help would be much appreciated :)
> >
> > Thanks
> >
> > Jon
> >
> >
> >
> >
> >
> >
> >
> > --
> > 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]<thinking-sphinx%[email protected]>
> .
> > For more options, visit this group at
> http://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]<thinking-sphinx%[email protected]>
> .
> For more options, visit this group at
> http://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