Ah, I think I've got it figured out. The clue was in an email from Nicolas (slainer68), who was having the same problem. It turns out, the attribute didn't know which model it belonged to, and that information was only provided when indexing happens. Of course, in my test suite, indexing happens at the start of every run, hence why I was never having problems.
I've now made sure model is set as part of the define_index block, so you shouldn't need to explicitly set the type now (and if someone could double-check, that would be fantastic). Cheers -- Pat On 25/01/2009, at 2:05 PM, Matt Murphy wrote: > Pat, > > I used :string, :integer, and :datetime. > > -Matt > > On Sat, Jan 24, 2009 at 7:33 PM, Pat Allan <p...@freelancing- > gods.com> wrote: > > Each facet is an additional attribute in the underlying setup - so > that'd mean indexing is a bit slower, but not noticeably. I think > complex SQL queries is far worse at slowing down indexing, via lots of > association joins. > > Also: what was the attribute type for your facet? I need to figure out > why you've both had that issue but my tests are fine... > > Cheers > > -- > Pat > > On 25/01/2009, at 3:46 AM, Matt Murphy wrote: > > > Also I just realized that I'm wondering about any indexing overhead > > imposed by adding facets... thoughts? > > > > On Sat, Jan 24, 2009 at 11:15 AM, Matt Murphy <[email protected]> > > wrote: > > Tom & Pat: > > > > Tom's suggestion worked! > > > > Thanks much guys, > > > > -Matt > > > > > > On Sat, Jan 24, 2009 at 7:04 AM, Tom Hunter <[email protected]> > > wrote: > > Matt, > > > > I am using it successfully with sphinx 0.9.9. I had the same error > > at first. Explicitly declaring the type on the field fixed it. For > > example: > > > > has 'category_id, :facet => true > > > > would cause the same error, but changing it to: > > > > has 'category_id, :facet => true, :type => :integer > > > > would fix it. > > > > This is using MySQL. > > > > - Tom > > > > > > On Sat, Jan 24, 2009 at 2:55 AM, Pat Allan <p...@freelancing- > > gods.com> wrote: > > > > Hi Matt > > > > What's your define_index block looking like? I'll double-check the > > tests against 0.9.9. > > > > -- > > Pat > > > > On 24/01/2009, at 2:47 PM, Matt Murphy wrote: > > > > > Pat, > > > > > > Do you know if facets work in the sphinx-0.9.9 branch? I'm > getting > > > an exception when I call Model.facets. I've just added :facet => > > > true to a few of the columns in the index definition. Are there > any > > > column types that can't be treated as a facet? > > > > > > Error below: > > > > > > >> Model.facets > > > NoMethodError: You have a nil object when you didn't expect it! > > > The error occurred while evaluating nil.columns > > > from /path/to/project/vendor/plugins/thinking-sphinx/lib/ > > > thinking_sphinx/attribute.rb:230:in `type_from_database' > > > from /path/to/project/vendor/plugins/thinking-sphinx/lib/ > > > thinking_sphinx/attribute.rb:236:in > `translated_type_from_database' > > > from /path/to/project/vendor/plugins/thinking-sphinx/lib/ > > > thinking_sphinx/attribute.rb:148:in `type' > > > from /path/to/project/vendor/plugins/thinking-sphinx/lib/ > > > thinking_sphinx/facet.rb:29:in `value' > > > from /path/to/project/vendor/plugins/thinking-sphinx/lib/ > > > thinking_sphinx/facet_collection.rb:17:in `add_from_results' > > > from /path/to/project/vendor/plugins/thinking-sphinx/lib/ > > > thinking_sphinx/collection.rb:118:in `each_with_groupby_and_count' > > > > > > > > > > > > > > > On Wed, Jan 21, 2009 at 6:50 PM, Pat Allan <p...@freelancing- > > > gods.com> wrote: > > > > > > Hi Tom > > > > > > You need to define the facets in your define_index block - > either by > > > using existing fields or attributes: > > > indexes location, :facet => true > > > has age, :facet => true > > > Or by adding an explicit column for the facet: > > > facet location > > > > > > Keep in mind facets need to have unique names across facets, > > > attributes and fields - so you couldn't put all three of the above > > > lines together, you'd need to give the last one an alias via > the :as > > > option. > > > > > > Once that's set up and you've stopped Sphinx, re-indexed and > > > restarted, then you can use it on the model as follows: > > > Model.facets > > > Which returns a collection accessible as a hash, with keys for > each > > > facet and results as the values. You can also drill down into a > full > > > result set: > > > Model.facets.for(:location => "Melbourne") > > > > > > There's also a little bit more detail in this gist: > > > http://gist.github.com/48328 > > > > > > Multi-model faceting is not supported *yet*, but it's in the > > pipeline. > > > > > > Cheers > > > > > > -- > > > Pat > > > > > > On 22/01/2009, at 4:27 AM, Tom Hunter wrote: > > > > > > > > > > > Could someone give me a brief explanation of how to use the > > facets? > > > > I'm not sure quite what to put as arguments when calling the > > facets > > > > method and if anything needs go to in the define_index block? > > > Thanks > > > > in advance! > > > > > > > > - Tom Hunter > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
