I wouldn't hold your breath for this - it's a Sphinx limitation, unfortunately, not Thinking Sphinx. But maybe Sphinx will add key-value pairs...
-- Pat On 02/05/2010, at 4:02 PM, minhnghivn wrote: > Thank you very much Pat, > > Yes, it is a real pain trying to search on Post itself. And I've taken > your solution, to perform search on Descriptions instead. The drawback > is that I had to put redundant Post information in the Descriptions > table (to avoid association and its string attributes issues). > > Hope there will be a complete solution to those matters in Thinking > Sphinx > > Cheers, > Nghi > > On Apr 23, 2:58 pm, Pat Allan <[email protected]> wrote: >> Sorry for the slow response... there's a couple of issues with your approach. >> >> Firstly, using strings for attributes - though there's ways around >> this.http://freelancing-god.github.com/ts/en/common_issues.html#string_fil... >> >> Secondly, you're expecting Sphinx to have some sense of key/value pairs, and >> it doesn't. EN and FR get put together, and the descriptions get merged >> together. This is a far more complex issue if you want to keep search on the >> Post, but if you switch to Description (and pull in post info via an >> association), then normal string filtering issue becomes the thing to deal >> with again. This is the approach I'd take, but obviously I don't have my >> head around your app :) >> >> Cheers >> >> -- >> Pat >> >> On 14/04/2010, at 8:04 PM, minhnghivn wrote: >> >> >> >>> Sorry if this is already posted elsewhere in the group but I've >>> searched the mail group and found no solution to my situation with >>> has_many association in Thinking Sphinx. >> >>> Suppose a Post has many descriptions in many languages. I create two >>> table posts and descriptions >> >>> posts (id, title) >>> descriptions(post_id, lang, description) >> >>> posts table: >>> post_id | title >>> ----------------------------------- >>> 1 | Post One >> >>> descriptions table >> >>> post_id | lang | description >>> ------------------------------------------- >>> 1 | "EN" | this is the first line - in English >>> 1 | "FR" | this is the second line - in French >> >>> I want to search for "any post whose EN description contains "first" >>> ". So >>> I perform a query like this: >> >>> Post.search "first", :with => {:language_ids => "EN"} # this works, >>> returned the Post One >> >>> but, amazingly, if I do: >> >>> Post.search "first", :with => {:language_ids => "FR"} >> >>> Again, it returns the Post One while I have thought it should return >>> nothing!!! >> >>> Any one can explain why? >> >>> class Post < ActiveRecord::Base >>> has_many :descriptions >> >>> define_index do >>> indexes post_id, title >>> indexes descriptions.language_id, :as => :language_ids >>> end >>> end >> >>> -- >>> 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 >>> athttp://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 >> athttp://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. > -- 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.
