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 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.

Reply via email to