Everyone

Thanks for the quick replies.

Having pagination work would be great, i'll give Pat's idea a try ASAP
and will let you know how it went...

Pascal

On Feb 15, 2:52 am, Pat Allan <[email protected]> wrote:
> Ah, maybe you're mistaking has with has_one?
> has being a Thinking Sphinx method, and has_one (and has_many)  
> belonging to ActiveRecord? :)
>
> In TS, if you're chaining methods, you can't use symbols.
>
> Can understand the half-asleepness - I'm not completely awake yet, I  
> think...
>
> Cheers
>
> --
> Pat
>
> On 15/02/2009, at 12:45 PM, Alex Caudill wrote:
>
>
>
> > I may be misunderstanding. And also, I suck at breaking at 80
> > chars. Anyway what I was thinking (and this is probably miles
> > away from reality) is that AR just calls #to_s on symbol args,
> > like:
>
> > has :friendships[:friend_id] , :as => :friend_ids
>
> > Which probably doesn't work at all, demonstrating how AR
> > is just a black box to me. Anyway I was just admiring how
> > some combo of #to_s and #join were being used to parse
> > the arguments to #has, #has_many, etc, so you could just
> > replace a complex bit of SQL with a nested hash. I dunno.
>
> > In  all fairness, I am half asleep.
>
> > On Feb 14, 2009, at 7:34 PM, Pat Allan wrote:
>
> >> Um, not sure what you mean about the symbol and AR...?
> >> but I just remembered - the manual 'has' call doesn't set up the
> >> relationships in the query Sphinx runs, so you'll need another field
> >> or attribute that uses the friendship relationship, ie:
>
> >> has friendships.friend_id, :as => :friend_ids
>
> >> Cheers
>
> >> --  
> >> Pat
>
> >> On 15/02/2009, at 12:30 PM, Alex Caudill wrote:
>
> >>> Nice trick Pat. I had no idea that ActiveRecord just takes the  
> >>> symbol
> >>> and converts it into a string when you specify a relationship, I
> >>> thought
> >>> there was all kinds of kung-fu involved. That's awesome, I'll
> >>> definitely
> >>> find a few places to put that technique to use.
>
> >>> On Feb 14, 2009, at 7:23 PM, Pat Allan wrote:
>
> >>>> But, if you want pagination to work straight out of the box, let's
> >>>> put
> >>>> named_scope aside for a moment...
>
> >>>> what you need is a custom attribute for your filter... (I'm  
> >>>> guessing
> >>>> table and column names, and using mysql functions)
>
> >>>> has "IF(private = 1, '0', GROUP_CONCAT(friendships.friend_id
> >>>> SEPARATOR
> >>>> ','))", :as => :user_limit, :type => :multi
>
> >>>> And then:
>
> >>>> # This will match 0 for public users, and the user id for private
> >>>> users
> >>>> User.search "whatever", :with => {:user_limit => [0, user.id]}
>
> >>>> Give that a shot.
>
> >>>> Cheers
>
> >>>> --  
> >>>> Pat
>
> >>>> On 15/02/2009, at 11:51 AM, Alex Caudill wrote:
>
> >>>>> Hey Pascal,
>
> >>>>> You could use a named_scope, e.g.,
> >>>>> User.publicly_visible.search(conditions), but then you'd have to
> >>>>> manually do pagination on the results, like
> >>>>> User.publicly_visible.search(conditions).paginate(:per_page =>
> >>>>> 10, :page => 1) - there may be performance problems with this, I
> >>>>> don't
> >>>>> know if
> >>>>> ActiveRecord lazily loads the rest of the User table columns or
> >>>>> what,
> >>>>> but I'm using a similar approach with chained named scopes and it
> >>>>> seems to perform admirably so far.
>
> >>>>> Hope this helps!
>
> >>>>> On Feb 14, 2009, at 2:37 PM, pascal wrote:
>
> >>>>>> Hi
>
> >>>>>> I want to convert a search system (just SQL queries) to sphinx/TS
> >>>>>> and
> >>>>>> have some troubles, and i hope someone can help me.
>
> >>>>>> The aim is to search users by first/lastname and a description
> >>>>>> text
> >>>>>> field. A user has many friends. Depending on the users privacy
> >>>>>> settings his visibility in the search by first/lastname is
> >>>>>> restricted
> >>>>>> to his friends or to everyone. Search by description is never
> >>>>>> restricted.
>
> >>>>>> Maybe an example can clear things up:
> >>>>>> User "Santa Claus" has "search privacy" turned on. If you are a
> >>>>>> friend
> >>>>>> you can still find him by the search "Santa". If you aren't a
> >>>>>> friend,
> >>>>>> then you can't find him with "Santa" but with "Christmas" because
> >>>>>> "Christmas" appears on a his description text.
>
> >>>>>> So it something like "find users where search terms matches AND
> >>>>>> (privacy off OR privacy on AND his ID is in in the list of my
> >>>>>> friends
> >>>>>> ids)".
>
> >>>>>> I got simple search up and running real quick but is Sphinx/TS  
> >>>>>> the
> >>>>>> right tool for this? How would i go about this?
>
> >>>>>> Thanks for your help!
>
> >>>>>> Pascal
--~--~---------~--~----~------------~-------~--~----~
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