Hi,
I'm having strange issues with facets after updating to Sphinx 1.10
beta (including a little hack – I'll come to that in a second).
Here's roughly what's happening (on the console, but it's the same via
the web):
>> Product.facets(:facets => [:category_path, :brand])
Riddle::ResponseError: No response from searchd (status: , version: )
from /Users/clemens/.rvm/gems/ruby-1.8.7-p302@rpx/gems/riddle-1.2.2/
lib/riddle/client.rb:611:in `request'
...
>> Product.facets(:facets => :brand)
=> {:brand=>{2583853161=>63, ... }
>> Product.facets(:facets => :category_path)
=> {:category_path=>{"2087,2173"=>1, ... }
So I can get both facets separately with no issues but if I try to
query them at once it doesn't work.
Here's the index and the aforementioned hack as well as my stab at
"treed facets": https://gist.github.com/810978
A word on the structure of categories: Each product belongs to a
category and categories are part of a tree where I also store the path
(say, Electronics > Computers > Portable could be ids 1, 2 and 3, so
the path would be 1,2,3). The first MVA is so I can use it in a filter
(:with => { :category_ids => [1] } should return all products
categorized in category 1 and any of its children), the second MVA is
so I can re-create the tree from the facet without having to
instantiate products/categories (can't do that with the first MVA
because it sorts the ids so a path of "1,100,10" would become
"1,10,100" which is not the correct tree structure anymore and
therefore messes up my facets).
I mention this because another problem happens here: Facet counts get
messed up because some records don't seem to be counted in the facets
although they are (or should be) in the index. For example, the facet
value for a (parent) category named "Accessoires" might be 15 but when
I search with the same parameters I get 16 hits. It's not an off-by-
one error because for other facets there are different error margins.
I've tried debugging it by taking a look at the index SQL but the only
thing I see in common is that the CRC32 of the missing records seems
different:
"22,25" => 3446997767
"22,28" => 3015999418
"22,29" => 3301134124
but
"22,27" => 595288619
It seems that the records with the "different" CRC32 values aren't
picked up by the facets. I've tried debugging the shit out of TS ;-)
and inspected pretty much every step of the facet search and can't
find the "22,27" value anywhere – I have no idea why it's not there.
The env:
- Ruby 1.8.7
- Rails 3.0.3
- Thinking Sphinx 2.0.2
- Riddle 1.2.2
- Sphinx 1.10-beta
I hope the problems are somewhat clear. I'd be grateful for any
pointers where to look for errors.
Thanks in advance,
- C.
--
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.