Ah, in that case, I'd be searching on Products, not Stores... Sphinx has no concept of key-value pairs, so it doesn't know which product names are tied to which kosher ids from the perspective of a Store.
-- Pat On 12/05/2010, at 3:33 PM, Nick Kezhaya wrote: > Ahh, perhaps I should better explain what I'm trying to do... > > These conditions need to be met: > > 1) The stores returned MUST have products that match "chicken" - > easily doable. > 2) Tricky: the products matching "chicken" in that store *cannot* have > a kosher_id of 0. > > On May 12, 12:29 am, Nick Kezhaya <[email protected]> wrote: >> Oh! I didn't know about sphinx_attributes(). >> >> It appears that product_kosher_ids is properly returning a large array >> of integers of the ids; however, because some of the products in each >> store aren't kosher, and some are, the first int at the beginning of >> this array is 0, along with the rest of them. >> >> How do I go about determining if product_kosher_ids returns more than >> 0? >> >> On May 11, 10:04 pm, Pat Allan <[email protected]> wrote: >> >> >> >> >> >>> Hi Nick >> >>> I'm not sure what the issue is, so can you run the following in >>> script/console: >> >>> Store.search(:conditions => {:product_names => 'chicken'}).collect { >>> |store| >>> store.sphinx_attributes['product_kosher_ids'] >>> } >> >>> This will get us the details on what Sphinx is storing for that attribute. >> >>> -- >>> Pat >> >>> On 12/05/2010, at 11:57 AM, Nick Kezhaya wrote: >> >>>> class Store < ActiveRecord::Base >>>> has_many :product_stores >>>> has_many :products, :through => :product_stores >> >>>> define_index do >>>> indexes :name >>>> indexes [products(:name), products(:brand)], :as => :product_names >> >>>> has products(:kosher_id), :as => :product_kosher_ids >>>> end >>>> end >> >>>> Oddly: >> >>>> Store.search :conditions => { :product_names => 'chicken' } >> >>>> ^ This returns stores properly, but: >> >>>> Store.search :conditions => { :product_names => 'chicken' }, :without >>>> => { :product_kosher_ids => 0 } >> >>>> ^ Returns an empty array. I've no idea why. >> >>>> I know the data is present in the database. >> >>>> -- >>>> 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 >> 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.
