Hi Pat,
       Thanks for the reply first I would like to know more about what
you were thinking about with "generate an attribute on the fly"
I played around with the :sphinx_select syntax and got some errors
with it.  Can you tell me what I am doing wrong here.  As an
example I tried

Car.search "",:sphinx_select => '*, @hit_count + 10000 AS
superkarma'

unknown identifier '@hit_count' (not an attribute, not a function)

from the documentation it looks like I need to make hit_count an
attribute on the model which I did but
it still doesn't work.

do you know what am I doing incorrectly here?





On Aug 3, 5:17 pm, Pat Allan <[email protected]> wrote:
> Hi Dave
>
> I'm afraid field_weights won't work, because firstly, you'll need to be 
> sorting by relevance, and secondly, created_at is an attribute, not a field.
>
> I'm not sure of the finer points, but perhaps you can use Sphinx's select 
> query to generate an attribute on the fly, which is essentially a simple 
> integer value to set priorities, and sort by that and *then* 
> created_at?http://sphinxsearch.com/docs/manual-2.0.1.html#api-func-setselect
>
> Use :sphinx_select to pass the string through in your search query - and keep 
> in mind, you'll need to refer to existing attributes, but I don't think you 
> can use field values.
>
> --
> Pat
>
> On 04/08/2011, at 8:43 AM, gerberdata wrote:
>
>
>
>
>
>
>
> > Maybe I could also use field weights
>
> > set_property :field_weights => {
> >  :holder_type => 10,
> >  :created_at    => 6,
> > }
>
> > what would happen to the result if I added weights?
>
> > On Aug 3, 12:58 pm, gerberdata <[email protected]> wrote:
> >> Maybe using group_by will work except I am trying to figure out how to
> >> use the
>
> >> :group_function :attr
>
> >> can this be grouped on a field instead of an attribute?
>
> >> the field I need to group on is holder_type
> >> indexes :image_holder_type, :as => :holder_type
>
> >> On Aug 2, 11:26 pm, gerberdata <[email protected]> wrote:
>
> >>> Pat,
>
> >>> here is the gist of what we are doing
>
> >>> if image_holder == "Car"
> >>>   tagger_key = [@image_holder.to_search_key,
> >>> @image_holder.dealerships.collect{|dealership|
> >>> dealership.to_search_key}].flatten.join(" | ")
> >>> end
> >>> conditions = "@tagger_keys (#{tagger_key})"
> >>> query_text = @s_query.blank? ? conditions : @s_query + "* & " +
> >>> conditions
>
> >>> then we run the search
>
> >>> images = Image.search query_text || "", :include=>[:tags],  :per_page
> >>> => @image_holder.blank? ? $LIST_PER_PAGE :
> >>> @per_page, :page=>@current_page, :order=>"tagger_keys asc, created_at
> >>> DESC", :match_mode => :boolean
>
> >>> this produces a result where we get the records in the correct order
> >>> according to our tagger_keys, but the created_at is not showing
> >>> in the proper descending order. So the created_at DESC does not seem
> >>> to be run properly we need to show the most recent images within each
> >>> tagger_keys
>
> >>> in our images model we have the tagger_keys sortable
> >>> indexes tags.tagger_key, :as => :tagger_keys, :sortable => true
>
> >>> So basically the date order is what is not working in this current
> >>> form.
>
> >>> Thanks for the help
>
> >>> Dave
>
> >>> On Aug 2, 8:22 pm, gerberdata <[email protected]> wrote:
>
> >>>>  we get all the image keys for a car first, then we get all the keys
> >>>> for a car.dealers and then we join all
> >>>> those keys together and pass it into search with the or expression.
> >>>> We need to prioritize this result firstly by the car and then the most
> >>>> recent car image,  and then by the car dealer and the most recent
> >>>> image of the car dealer.  Right now the result returns only in
> >>>> the date order.
>
> >>>> Is this possible?
>
> >>>> On Aug 2, 7:38 pm, Pat Allan <[email protected]> wrote:
>
> >>>>> Not sure if I quite understand this - do you want to prioritise a 
> >>>>> specific image_holder_id, and then sort firstly within that id by date, 
> >>>>> and then all other results by date?
>
> >>>>> --
> >>>>> Pat
>
> >>>>> On 03/08/2011, at 12:04 PM, gerberdata wrote:
>
> >>>>>> Looking to get some help and ideas for this issue I have here.  Maybe
> >>>>>> one of the excellent minds on
> >>>>>> this board can help
>
> >>>>>> @images = Image.search
> >>>>>> key1,key2,key3 ,   :per_page=>1, :page=>pos, :order=>"created_at
> >>>>>> DESC", :match_mode => :boolean
>
> >>>>>> I need to be able to sort as follows
>
> >>>>>> 1. keep the created_at DESC as the first sort
> >>>>>> 2. have an additional sort which sorts on the image_holder_id
>
> >>>>>> here is the indexing for image_holder_id
> >>>>>> has :image_holder_id, :as => :holder_id
>
> >>>>>> so can picture it this way I have a url for one particular cars
> >>>>>> profile and
> >>>>>> I want to show the images of the car first and then the related
> >>>>>> things to car
>
> >>>>>> imageofcar1  created today image_holder:current_car
> >>>>>> imageofcar2  created today image_holder:current_car
> >>>>>> imageofcardealer created today image_holder:car_dealer
> >>>>>> imageofcardealer created today image_holder:car_dealer
> >>>>>> imageofcardealer created yesterday image_holder:car_dealer
> >>>>>> imageofcardealer created yesterday image_holder:car_dealer
>
> >>>>>> But my current result is this
> >>>>>> imageofcardealer created today image_holder:car_dealer
> >>>>>> imageofcar1  created today image_holder:current_car
> >>>>>> imageofcardealer created today image_holder:car_dealer
> >>>>>> imageofcar2  created today image_holder:current_car
> >>>>>> imageofcardealer created yesterday image_holder:car_dealer
> >>>>>> imageofcardealer created yesterday image_holder:car_dealer
>
> >>>>>> this is wrong because I want to show the imagesofcars first then the
> >>>>>> images of cardealers
>
> >>>>>> --
> >>>>>> 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 
> >>>>>> athttp://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 
> > athttp://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.

Reply via email to