You may want to add store_id to the product index, and then group by that? Though it's not *entirely* reliable, the Sphinx docs say.
http://www.sphinxsearch.com/docs/manual-0.9.9.html#clustering http://freelancing-god.github.com/ts/en/searching.html#grouping -- Pat On 12/05/2010, at 3:41 PM, Nick Kezhaya wrote: > Well, I *do* have a search for products set in place, and it works > really well. I just created a :without => { :kosher_id => 0 } and the > filter worked flawlessly. > > Unfortunately, my client also needs users to be able to search for > *stores* that have those particular attributes. Am I really going to > have to use collect() until I get a sufficient amount of stores? :\ > > On May 12, 12:38 am, Pat Allan <[email protected]> wrote: >> 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 >>> 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.
