Hi All,
I'm getting an error when I try to run (in script/console on Rails
2.3.5):
>> Product.facets "foobar"
NoMethodError: undefined method `sphinx_facets' for nil:NilClass
After some inspection, it seems this is because in Thinking-
sphinx-1.3.11/lib/thinking_sphinx/facet_search.rb, in the
add_from_results method, there is the following line:
facet = facet_from_object(results.first, facet) if facet.is_a?(String)
However, the results set has a nil value as its first value. The
results set was defined in the same file in the populate method:
ThinkingSphinx.search(*(args + [search_options]))
So I'm not sure exactly where things are going wrong. Is there ever
supposed to be nil values in this result set? If so, is TS not being
defensive enough? If not, does that mean my index is faulty?
(Included below.)
Thank you so much, its been a day and I am really not sure which
direction to take. Happy to answer any questions.
Keith
Here is my define_index for the Product model:
define_index do
indexes :textile_description
indexes :tags_delimited
indexes :name
indexes :name, :as => :name_sortable, :sortable => true
indexes user(:first_name), :as => :user_first_name
indexes user(:last_name), :as => :user_last_name
indexes manufacturer(:name), :sortable => true, :as
=> :manufacturer_name_sortable
indexes manufacturer(:name), :as => :manufacturer_name
has :user_id
has :updated_at
has manufacturer(:id), :as => :manufacturer_id, :facet => true
has product_cat(:first_category_id), :as
=> :prod_cat_first_category_id, :facet => true
has product_cat(:second_category_id), :as
=> :prod_cat_second_category_id, :facet => true
has product_cat(:third_category_id), :as
=> :prod_cat_third_category_id, :facet => true
has product_cat(:fourth_category_id), :as
=> :prod_cat_fourth_category_id, :facet => true
where "products.deleted_at IS NULL"
end
And just for completeness, here is the error stack involving TS:
NoMethodError: undefined method `sphinx_facets' for nil:NilClass
[GEM_ROOT]/gems/thinking-sphinx-1.3.11/lib/thinking_sphinx/
facet_search.rb:133:in `facet_from_object'
[GEM_ROOT]/gems/thinking-sphinx-1.3.11/lib/thinking_sphinx/
facet_search.rb:111:in `add_from_results'
[GEM_ROOT]/gems/thinking-sphinx-1.3.11/lib/thinking_sphinx/
facet_search.rb:49:in `populate'
[GEM_ROOT]/gems/thinking-sphinx-1.3.11/lib/thinking_sphinx/
facet_search.rb:47:in `each'
[GEM_ROOT]/gems/thinking-sphinx-1.3.11/lib/thinking_sphinx/
facet_search.rb:47:in `populate'
[GEM_ROOT]/gems/thinking-sphinx-1.3.11/lib/thinking_sphinx/
facet_search.rb:13:in `initialize'
[GEM_ROOT]/gems/thinking-sphinx-1.3.11/lib/thinking_sphinx/
search_methods.rb:422:in `new'
[GEM_ROOT]/gems/thinking-sphinx-1.3.11/lib/thinking_sphinx/
search_methods.rb:422:in `facets'
--
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.