Hi Pat,

I tried the patch. The problem i see is, it is applying sort on top of
paginated results that is, it paginates and then sorts paginated result.
But i want sort to be applied and then paginate the sorted results.

Thanks,


Regards,
Sabarish S


On Tue, Oct 8, 2013 at 7:41 AM, Sabarish Sankar <[email protected]
> wrote:

> Awesome! I will try that out with your fix. Thanks very much for the fix.
>
>
> Regards,
> Sabarish S
>
>
> On Tue, Oct 8, 2013 at 7:37 AM, Pat Allan <[email protected]>wrote:
>
>> Yup, that does sound right :)
>>
>> On 08/10/2013, at 1:05 PM, Sabarish Sankar <[email protected]>
>> wrote:
>>
>> Hi Pat,
>>
>> Thanks very much.
>>
>> *field()* is a MYSQL function that I used here to sort based on given
>> order of IDs
>>
>>
>> http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_field
>>
>> SELECT id from users WHERE id IN (1, 2, 3) ORDER BY field(id,1,3,2);
>>
>> So, I assume if we pass the field() function to :sql => {:order => '*
>> field(id,#{user_ids.join(',')})*'}, that should help me to get the order
>> in the order of IDs provided. Please correct me if i am wrong.
>>
>> Thanks,
>>
>>
>> Regards,
>> Sabarish S
>>
>>
>> On Tue, Oct 8, 2013 at 5:00 AM, Pat Allan <[email protected]>wrote:
>>
>>> Hi Sabarish
>>>
>>> I'm afraid Sphinx doesn't have anything like the field() function - so
>>> there's no way of having that sorting work dynamically within Sphinx. If
>>> the order is quite specific and can be stored in the database, then you
>>> could use that value as an attribute for Sphinx ordering… but I'm guessing
>>> that's not the case.
>>>
>>> As for why :sql => {:order … } isn't working, it turns out there's a
>>> bug… which I've just fixed. To use the latest version, put this in your
>>> Gemfile:
>>>
>>>   gem 'thinking-sphinx', '~> 3.0.5',
>>>     :git    => 'git://github.com/pat/thinking-sphinx.git',
>>>     :branch => 'master',
>>>     :ref    => '5dd6f4bfdd'
>>>
>>> --
>>> Pat
>>>
>>> On 08/10/2013, at 5:09 AM, Sabarish Sankar <[email protected]>
>>> wrote:
>>>
>>> > A small update,
>>> >
>>> > user_ids =  [1, 3, 2]
>>> >
>>> > I tried with :sql => {:order => "field(id,#{user_ids.join(',')})"}
>>> >
>>> > but that still does not give me the result in the expected sorting
>>> order.I see that we can pass :sql => :order in options when we need to sort
>>> on sql.
>>> >
>>> > User.where(:id =>  [1, 2, 3]).order("field(id,#{user_ids.join(',')})")
>>> gives me proper results as expected
>>> >
>>> > Please correct me if i am doing anything wrong here.
>>> >
>>> > Thanks,
>>> >
>>> >
>>> >
>>> >
>>> > Regards,
>>> > Sabarish S
>>> >
>>> >
>>> > On Mon, Oct 7, 2013 at 8:02 PM, JSWorld <[email protected]>
>>> wrote:
>>> > Hi Pat,
>>> >
>>> > I have a requirement where I want to get results based on the order of
>>> IDs that i pass to sphinx:
>>> >
>>> > I did sorting and filtering with ruby and then find order of user_ids
>>> to be
>>> >
>>> > user_ids = [1, 3, 2]
>>> >
>>> > Now, I want to apply search on top of this like :
>>> >
>>> > User.search_for_ids("Test", {:with => {:page => params[:page],
>>> :per_page => 25, :sphinx_internal_id => user_ids}, :order => user_ids})
>>> >
>>> > Is there a way to preserve the order with respect to user_ids ? Any
>>> help is much appreciated.
>>> >
>>> > Thanks,
>>> >
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> Groups "Thinking Sphinx" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> > To post to this group, send email to [email protected].
>>> > Visit this group at http://groups.google.com/group/thinking-sphinx.
>>> > For more options, visit https://groups.google.com/groups/opt_out.
>>> >
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> Groups "Thinking Sphinx" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> > To post to this group, send email to [email protected].
>>> > Visit this group at http://groups.google.com/group/thinking-sphinx.
>>> > For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Thinking Sphinx" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/thinking-sphinx.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Thinking Sphinx" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/thinking-sphinx.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Thinking Sphinx" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/thinking-sphinx.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/thinking-sphinx.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to