Hi Luis

Sorry for not responding sooner. Unfortunately, I can't think of any way to do 
this - there's no way to refer to other indices or have subqueries within 
queries. Not saying what you want to do is impossible… but certainly, I've no 
idea how to do it.

Cheers

-- 
Pat

On 26/07/2012, at 9:20 PM, Luis Lavena wrote:

> Hello,
> 
> I-ve been trying to make Sphinx solve a problem for me: obtain a list
> of Tags, ordered by usage (@count) but avoid having tags that combined
> cause an empty result.
> 
> Given the models:
> 
> class Post < ActiveRecord::Base
>  define_index do
>    indexes :title, :description
>    indexes tags(:name)
>  end
> end
> 
> class Tagging < ActiveRecord::Base
>  belongs_to :post
>  belongs_to :tag
> 
>  delegate :name, :slug, :to => :tag
> 
>  define_index do
>    indexes tag(:name)
> 
>    has post(:id), :as => :post_id
>  end
> end
> 
> I want to obtain a list of tags that only matches the ones used in the
> posts, so if I do:
> 
> Post.search "foo"
> 
> I would like the tags be also limited to the list of posts and not other tags.
> 
> Right now, I do this by limiting taggings to a list of Post IDs:
> 
> total_posts = Post.search_count(keywords)
> post_ids = Post.search_for_ids keywords, :limit => total_posts
> 
> taggings = Tagging.search keywords, :with => { :post_id => post_ids }
> 
> As you notice, this does not scale since post_ids can contain 10K records.
> 
> I can't think on a way to retrieve a list of tags that only apply to
> the list of posts that are involved in the results, so when combined
> keywords it does not end in a empty results scenario.
> 
> Think of this in a combinatory tag cloud or something like that :P
> 
> Perhaps (most likely) I'm doing it wrong, so will appreciate any
> comments and suggestions that help me think out of the box.
> 
> Thank you.
> -- 
> Luis Lavena
> AREA 17
> -
> Perfection in design is achieved not when there is nothing more to add,
> but rather when there is nothing more to take away.
> Antoine de Saint-Exupéry
> 
> -- 
> 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.
> 

 

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