Hi Cary
What does the generated SQL query look like in development.sphinx.conf, along
with your full define_index block and associations definitions?
Cheers
--
Pat
On 18/02/2011, at 9:43 AM, Cary FitzHugh wrote:
> Hrm,
>
> I don't know why but it doesn't seem to work for me.
>
> i think it has to do with the fact that it does not have a :join in the
> scope... I assume that is how you're constructing your queries?
>
> on the console:
>
> Node.first.descendants.scope(:find)
> => {:include=>nil, :order=>nil, :conditions=>"`node`.source_uid =
> '87729990-1505-012e-31dc-48bcc896bfe2'", :limit=>nil, :readonly=>false}
>
> Any ideas?
>
> Thanks,
> Cary
>
> On Thu, Feb 17, 2011 at 4:55 PM, Pat Allan <[email protected]> wrote:
> Hi Cary
>
> Try:
> join descendants
>
> Run rake ts:conf, check what the table is aliased as, then use that in your
> attribute SQL snippet (in this case, presuming like you that it's
> descendants):
>
> has "COUNT(descendants.id)", :as => :descendants_count, :type => :integer
>
> Cheers
>
> --
> Pat
>
> On 18/02/2011, at 8:50 AM, Cary FitzHugh wrote:
>
> > I've learned a bit more about sphinx and how it seems that it all boils
> > down to a single SQL query.
> >
> > I'd like to add this:
> >
> > has "(count(descendants.id))", :as=>:decendant_count, :type=>:integer
> >
> > and at the end of the define_index add:
> >
> > join "LEFT JOIN nodes decendants ON nodes.uid = descendants.source_uid"
> >
> >
> > But I'm thwarted by some error in THinkingSphinx::Join when I try to do
> > this...
> >
> > The correct SQL is *so* close... Any ideas? I'm looking into how I could
> > monkey-patch it to get this in there....
> >
> > Any ideas?
> >
> > Thanks!
> > Cary
> >
> >
> > On Thu, Feb 17, 2011 at 4:03 PM, CFitzhugh <[email protected]> wrote:
> > Hi all,
> >
> > I have a DB with records which look something like this:
> >
> > Node
> > uid: <.....>
> > source_uid: <....>
> > ...
> >
> > A root node has a null source_uid,
> > child nodes will have the source uid set with the uid of a root node.
> >
> > Anyway - in rails I have my fancy has_many relationship:
> >
> > class Node
> >
> > has_many :descendants, :class_name=>"Node", :foreign_key=>'source_uid',
> > :primary_key=>'uid'
> > end
> >
> > In Sphinx the attribute I want to add is 'descendant_count'.
> >
> > To be able so sort a query result based on how many descendants the
> > node has.
> >
> > Is there any way to do this?
> > I have tried:
> >
> > has descendants.count
> > has descendants(:count)
> > has descendants
> > ....
> >
> > Nothing seems to generate valid SQL - so ts:rebuild ends up throwing
> > out exceptions on me.
> >
> > What I want to do is basically do a sub-query, get the # of
> > descendants, and save that count as an integer in the sphinx index for
> > each record.
> >
> > Any ideas?
> >
> > Thanks!
> > Cary
> >
> > --
> > 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.
>
> --
> 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.
--
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.