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.

Reply via email to