On 21/07/2009, at 8:39 AM, James Healy wrote:
>> These search examples could be handled by passing the attribute
>> using :conditions or :with. But what I'm still stuck on is how to
>> accomplish this:
>>
>> Model.search("(@string foo | @attribute 1)")
>>
>> As far as I can tell, this isn't possible. Any chance someone has
>> found a solution for this?
>
> Pat may correct me, but I'm pretty sure filters don't allow OR
> conditions.
>
> My (somewhat limited) workaround is to define a new attribute that has
> the OR defined in SQL:
>
> has "IF(active = 1 OR in_stock > 0, 1, 0)", :as
> => :available, :type => :boolean
>
James is spot on - can't use OR with different filters (although
passing an array of values into a single filter uses OR logic). Josh,
I think you'll need to follow James' example with the manual
definition of an attribute.
Also, I highly recommend you put attribute filters in :with,
not :conditions - I'll be deprecating that soon, forcing fields to be
in :conditions, attributes in :with (makes for cleaner code, thus
easier to maintain).
Cheers
--
Pat
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---