I've looked at this email a few times, and am struggling to grok it all...
however, I think maybe a different approach is needed: I would cache the
information from the latest revision in the resource model. That way, you don't
need to worry about joins at all - just index the Resource model, not the
ResourceRevision model.
--
Pat
On 16/04/2010, at 11:23 PM, plcs wrote:
> For our search we have a rather obscure situation.
>
> A "Resource" can have many "ResourceRevisions" and these are number
> sequentially, so that the a Resource ID of 1 and a ResourceRevision of
> 1 is the first entry of a Resource.
>
> What this means for searching is that in our ResourceRevision model
> have:
> set_sphinx_primary_key :resource_id
>
> And our define is:
>
> define_index do
> indexes title
> indexes description
> indexes short_description
> indexes resource(:id), :as => :resource, :sortable => true
>
> where "NOT EXISTS (SELECT resource_id, id FROM resource_revisions
> AS rrs WHERE ((`resource_revisions`.`resource_id`=`rrs`.`resource_id`)
> AND (`rrs`.`id` > `resource_revisions`.`id`)))"
>
> set_property :enable_star => true
> set_property :min_prefix_len => 3
>
> has resource_id, created_at, updated_at
> end
>
> The aim of our where is to select the latest entry in the resource
> ideas and only search that; however either I wrote this incorrectly,
> or are not using it correctly in searches, as it will bring up search
> results from earlier revisions.
>
> An example is:
> titles = ResourceRevision.search :conditions => { :title =>
> params[:query] }, :star => true
>
> This will return older resource revisions, and because we use the
> excerpts we need it to only search the latests, as otherwise that
> method explodes if we just tell it to use the latest version of
> whatever resource revision it gets.
>
> So are we approaching this from completely the wrong route, or have we
> just missed a step or should it work?
>
> Any help will be gratefully appreciated
>
> plcs
>
> --
> 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.