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