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.

Reply via email to