Hi Pat,

Thanks for your quick response. Its working absolutely fine.

Thanks for creating such a nice gem. Really appreciable.

Thanks once again.

On Tue, Jul 28, 2015 at 6:11 PM, Pat Allan <[email protected]> wrote:

> Hi Chaitali
>
> Because you’re searching on publishers, it’s the Publisher index you’ll
> need to modify to get this to work. I’m presuming a publisher belongs_to
> :country_report, country report belongs_to :country, and country belongs_to
> :continent.
>
> If you’re using SQL-backed indices (using the :with => :active_record
> option), then you’ll want the following in your Publisher index:
>
>   has country_report.country.continent_id, :as => :continent_id
>
> If you’re using real-time indices (:with => :real_time), then it’s the
> same, but you must specify the type as well:
>
>   has country_report.country.continent_id, :as => :continent_id, :type =>
> :integer
>
> However, if there’s a has_many or has_and_belongs_to_many instead of
> belongs_to in that chain of associations from publisher to continent, then
> it’s a little more complicated. Also, in this case, it might be possible to
> have more than one continent for a publisher, so we’re dealing with
> multiple values here.
>
> For SQL-backed indices, a minor change, alter the associations chain:
>
>   has country_reports.country.continent_id, :as => :continent_ids
>
> But with a real-time index, it’s better to have a method on the Publisher
> model that returns the necessary value or values, and then use that in the
> index:
>
>   # in app/models/publisher.rb
>   def continent_ids
>     country_reports.collect(&:country).collect(&:continent_id)
>   end
>
>   # in app/indices/publisher_index.rb
>   has continent_ids, :type => :integer, :multi => true
>
> And then, once you’ve rebuilt your index, you can search as follows (with
> the attribute being plural if appropriate):
>
>   Publisher.search “foo”, :with => {:continent_id => continent.id}
>
> This *may* work as well (the multiple levels of associations may confuse
> things though):
>
>   continent.publishers.search “foo”
>
> Hope this helps!
>
> —
> Pat
>
> On 28 Jul 2015, at 10:08 pm, Chaitali Khangar <[email protected]>
> wrote:
>
> Can you please help me in thinking sphinx?
>
>
> *Relationship:*
>
> Continent
>
> has_many :countries
>
> has_many :country_reports, through: :countries, :class_name => "Report"
>
> has_many :publishers, through: :country_reports
>
>
> *Expected Output:*
>
>
> I want to find Continent.first.publishers
>
>
> Please tell me how to write this in thinking sphinx rails
>
> --
> You received this message because you are subscribed to the Google Groups
> "Thinking Sphinx" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/thinking-sphinx.
> For more options, visit https://groups.google.com/d/optout.
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Thinking Sphinx" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/thinking-sphinx.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/thinking-sphinx.
For more options, visit https://groups.google.com/d/optout.

Reply via email to