Yeah, I thought about that. The problem is that not all items have 
variations. :( :( :(

Also I came up with *join *instruction for index which give me actually 
what I wanted -- left join on item_variations. But I can't figure out how 
to 
- select fields that connected to the variation, like 
items_found[0].variaiton_id
- make TS not add GROUP by item ID, so I could have a few records with the 
same item ID but different variations IDs.

Any thoughts I can do it somehow?

Thanks!

On Wednesday, 28 January 2015 10:23:16 UTC-3, Pat Allan wrote:
>
> Hi Misha
>
> In this case I think you want to be searching on ItemVariation instead of 
> Item - you’re asking Sphinx to return an Item more than once, and it 
> doesn’t have the ability to do that. Having an index on ItemVariation 
> (pulling in Item details in fields and attributes as needed) is almost 
> certainly going to be a better fit.
>
> Cheers
>
> — 
> Pat
>
> On 28 Jan 2015, at 3:03 am, Misha Slyusarev <[email protected] 
> <javascript:>> wrote:
>
> Hi Pat!
> Thank you for all your help so far! The problem is still actual though.
>
> So basically what I want to get is an array where each of the elements 
> includes information from both Item and ItemVariation models (Item has_many 
> ItemVariations). Generally I can achieve this in ActiveRecord using *left 
> join*, but in ThinkingSphinx when I try to use same technic (as shown 
> bellow with *joins: 'left join..'*) I fail since I get only first 
> variation (first element of the joined table) along with Item.
>
> The idea behind that is to display variations alongside with items on the 
> list. And to be able to treat them independently.
>
> Here is the query
>
> *items_found = Item.search params[:q], *
> *    :joins => 'left join item_variations iv on iv.item_id=items.id 
> <http://items.id>',*
> *    :select => 'items.*, iv.id <http://iv.id> as variation_id'*
>
>
> So bellow is what I'm getting
>
> *items_found[0]:*
> *  id: 1*
> *  variation_id: 3434*
>
> *items_found[1]:*
> *  id: 2*
> *  variation_id: nil*
>
>
> And here is what I want to get (here Item 1 goes with two variations and 
> they come as standalone elements of the array, and both have same item's 
> information, but different item variation's information)
>
>
> items_found[0]:
>   id: 1
>   variation_id: 3434
>
> items_found[1]:
>   id: 1
>   variation_id: 9898
>
> items_found[2]:
>   id: 2
>   variation_id: nil
>
>
> Please keep in mind that I use TS v2.0.10
>
> Appreciate any advise or thoughts!
> Misha
>
> On Monday, 10 November 2014 08:05:26 UTC-3, Pat Allan wrote:
>>
>> Hi Misha
>>
>> Sphinx always paginates - there’s no way to turn that off. You can 
>> request really large pages though (the default maximum is 1000 records, but 
>> that can be modified):
>>
>> http://pat.github.io/thinking-sphinx/advanced_config.html#large-result-sets
>>
>> I’m not sure I quite understand what you’re after, though… if you want 
>> the item_variations loaded from the database alongside each item (eager 
>> loading), then you can pass through either :joins or :include options 
>> nested within the :sql option. Same goes for :select.
>> http://pat.github.io/thinking-sphinx/searching.html#advanced
>>
>> It’s worth noting, though, that Sphinx itself has no concept of joins - 
>> there’s no way to tie one index to another.
>>
>> Does that help? Have I missed something?
>>
>> — 
>> Pat
>>
>
> -- 
> 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] <javascript:>.
> To post to this group, send email to [email protected] 
> <javascript:>.
> 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