Hi Gaurav
Something definitely is going wrong here, but it's failing even before the
facets - a normal search query for U2716 should return something...
What's the sql_query value in config/development.sphinx.conf for your product
source?
--
Pat
On 01/07/2010, at 4:00 PM, gaurav wrote:
> I have an application in which I need to implement the faceted search
> functionality on one of the fields of the associated models and it
> does not seem to be working. Here is a brief context: There are 3
> models I am working: 1. Product 2. Attributes 3. AttributeProduct
>
> class Product < ActiveRecord::Base
> ...
> has_many :product_attributes
> has_many :prod_attrs, :through => :product_attributes, :class_name
> => 'Attribute'
>
> has_one :brand, :class_name => "AttributeProduct", :conditions =>
> "product_attributes.attribute_id IN (Select id from attributes where
> name = 'Brand')"
> has_one :model, :class_name => "AttributeProduct", :conditions =>
> "product_attributes.attribute_id IN (Select id from attributes where
> name = 'Model')"
> ....
>
> define_index do
> indexes :name
> indexes description
> indexes product_category(:name), :as => :sub_category
>
> indexes brand(:attribute_value), :as => :brand, :facet => true
> indexes model(:attribute_value), :as => :model, :facet => true
>
> where "products.online = 1 AND products.product_category_id IN
> (SELECT id FROM product_categories WHERE
> product_categories.parent_category_id IS NOT NULL)"
> end
>
> end
> -----------------------------------------------------------------------
> class AttributeProduct < ActiveRecord::Base
> # => Since attribute is already taken, renaming the association
> method to prod_attr
> belongs_to :attribute
> belongs_to :product
> ...
> end
> ------------------------------------------------------------------
> class Attribute < ActiveRecord::Base
> has_many :attribute_products
> has_many :products, :through => :product_attributes
> ....
> end
> ------------------------------------------------------------------
>
> I have defined 1:1 relationship between product and a brand & between
> product and a model. Then I define indexes on both and make them
> facets.
>
> Now in the Product model, the search for the brand returns results but
> the search for the model name does not return any result.
>
> For example:
> Product.search(:conditions => {:model => "U2716"})
> Sphinx Querying: '@model U2716'
> Sphinx (0.002063s) Found 0 result
> -------------------------------------------------------------------
> Product.search(:conditions => {:brand => "Calvin"})
> Sphinx Querying: '@brand Calvin'
> Sphinx (0.004142s) Found 7 results
> -------------------------------------------------------------------
>
> In my understanding "model" facets content is getting indexed. The
> results are below:
>
> Product.facets(:conditions => {:brand => "Calvin"})
> {:model=>{"U2716"=>7}, :product_category_id=>{6=>1,
> 2=>6}, :cost=>{1=>3, 2=>4}, :brand=>{"Calvin Klein"=>7}}
> ---------------------------------------------------------------------
>>> Product.facets(:conditions => {:model => "U2716"})
> {:model=>{}, :product_category_id=>{}, :cost=>{}, :brand=>{}}
>
> I was wondering if guys have any thoughts opinions on how I can get
> this issue that get me back the results i.e.
> "Product.facets(:conditions => {:model => "U2716"})". # => some
> results back.
>
> --
> 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.