Greg wrote:
> One way to get what I want:
> 
> define_index do
>   indexes title
>    ...
>   indexes "IF(ISNULL(owner_id),'nobody',concat_ws(' ',
> users.first_name, users.last_name))", :as => :owner_or_nil
> end
> 
> But this seems very nasty, is there a more elegant approach?

I would solve this with attributes:

  define_index do
    ...
    indexes title
    indexes [first_name, last_name], :as => :owner
    ...
    has owner_id, :type => :integer
  end

Null values get converted to 0 when stored as an int attribute in a
sphinx index, so filtering by owner_id of 0 should get what you want.

  Product.search(:with => {:owner_id => 0})

-- James Healy <jimmy-at-deefa-dot-com>  Wed, 09 Sep 2009 00:18:13 +1000

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