I am doing a search for user posts that either they have made or that
were made for a group they belong to.
## Method
def self.find_all_activity_for_user(user_id, filter, page=1)
group_ids = User.find(user_id).groups.map(&:id)
groups = Group.all(:conditions => {:id => group_ids})
puts "PostIds for User
#{Post.find_all_by_user_id(user_id).map(&:id).join(',')}"
puts "PostIds for Groups #{groups.map { |g|
g.submissions.map(&:post_id)}.first}"
Post.search(filter,
:with => {:group_id => group_ids, :user_id =>
user_id},
:match_mode => :any,
:page => page,
:per_page => self.per_page)
end
## puts output
PostIds for User 1023110940,1023110938,1023110939
PostIds for Groups 1023110939
## generated sql
SELECT * FROM `posts` WHERE (`posts`.`id` IN (1023110939,1023110940))
AND (posts.draft = 0) ORDER BY posts.created_at DESC
## AR class
class Post < Act...
define_index do
indexes title, tags, body
indexes [user.first_name, user.last_name], :as => :user_name
indexes links.base_uri, :as => "link_url"
indexes links.title, :as => "link_title"
indexes links.description, :as => "link_description"
indexes links.keywords, :as => "link_keywords"
indexes links.source, :as => "link_source"
indexes assets.upload_file_name, :as => "upload_file_name"
indexes submissions.group_id, :as => "group_id"
has user_id, created_at
has submissions.group_id, :as => "group_id"
where "draft = 0"
set_property :delta => true
end
end
Based on the ids it can be seen that right now all the posts are by
the one user, while only one was to the group.
PostIds for User 1023110940,1023110938,1023110939
PostIds for Groups 1023110939
So xx38, xx39, xx40 should be in the query, yet the final sql only
searches for 2 of the items
IN (1023110939,1023110940)
Can what I am trying to do be done?
--
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.