Hi Ahmed

It'll need to be an attribute, not a field:

  has vintage_year

If you've not been sure what the difference is between fields and attributes, 
have a read of the sections here:
http://pat.github.com/ts/en/sphinx_basics.html

Cheers

-- 
Pat


On 18/01/2013, at 2:11 PM, Ahmed El-Daly wrote:

> Thanks, Pat, but I have already tried that. I should have mentioned that in 
> my post. Doing that produces this error:
> 
> Mysql2::Error: index wine_core: sort-by attribute 'vintage_year' not found
> 
> #wine_index.rb
> ThinkingSphinx::Index.define :wine, with: :active_record, delta:false do
>   indexes vintage_year
> end
> 
> Thanks,
> Ahmed
> 
> ---------------------------------------------------------
> Ahmed El-Daly Chief Guru 
> DeveloperGurus Inc.  on budget, on time
> T: 416-566-4945  |  developergurus.com
> 
> On 2013-01-17, at 6:50 PM, "Pat Allan" <[email protected]> wrote:
> 
>> When you're referring to an internal Sphinx attribute, you use the @ - but 
>> any of your own, you don't. So, try the following:
>> 
>>  :order => "@weight DESC, vintage_year DESC"
>> 
>> On 18/01/2013, at 2:20 AM, Ahmed El-Daly wrote:
>> 
>>> Oh, and I'm searching by sql, because this doesn't seem to work:
>>> 
>>> order: '@weight DESC, @vintage_year DESC',
>>> 
>>> It gives me: Mysql2::Error: sphinxql: syntax error, unexpected USERVAR, 
>>> expecting IDENT (or 4 other tokens) near '@vintage_year DESC LIMIT 0, 10; 
>>> SHOW META'
>>> 
>>> in my wine_index.rb, I have:
>>> indexes vintage_year
>>> 
>>> Is the syntax correct for what I want to do?
>>> 
>>> Thanks again.
>>> 
>>> ---------------------------------------------------------
>>> Ahmed El-Daly Chief Guru 
>>> DeveloperGurus Inc.  on budget, on time
>>> T: 416-566-4945  |  developergurus.com
>>> 
>>> On 2013-01-17, at 9:05 AM, "Pat Allan" <[email protected]> wrote:
>>> 
>>>> That error doesn't seem to quite match the query - are you sorting by 
>>>> @rank or custom_rank? Or does the error occur either way? Perhaps SphinxQL 
>>>> doesn't understand @rank - but it should be fine with @weight, which is 
>>>> the same thing.
>>>> 
>>>> That said - you're also sorting with the SQL statement - why bother with 
>>>> the Sphinx sort order at all?
>>>> 
>>>> (And that SQL ordering should be done like so in v3: :sql => {:order => 
>>>> 'vintage_year DESC'} )
>>>> 
>>>> Cheers
>>>> 
>>>> -- 
>>>> Pat
>>>> 
>>>> On 17/01/2013, at 2:38 AM, Daly wrote:
>>>> 
>>>>> Good morning,
>>>>> 
>>>>> This used to work fine:
>>>>> options = {:retry_stale => true, :sort_mode => :extended, :order => 
>>>>> '@rank DESC', :per_page => 1000000, :sql_order => 'vintage_year DESC'}
>>>>> options.merge!(:per_page => 10, :page => page) if use_pagination
>>>>> results = Wine.search(string, options)
>>>>> 
>>>>> After the upgrade, it complains with:
>>>>> Mysql2::Error: sphinxql: syntax error, unexpected USERVAR, expecting 
>>>>> IDENT (or 5 other tokens) near '@rank DESC LIMIT 0, 10; SHOW META'
>>>>> 
>>>>> I tried this:
>>>>>     options = {
>>>>>       :retry_stale => true,
>>>>>       :sort_mode => :extended,
>>>>>       :select => '*, @rank as custom_rank',
>>>>>       :order => :custom_rank,
>>>>>       :per_page => 1000000,
>>>>>       :sql_order => 'vintage_year DESC'
>>>>>     }
>>>>> 
>>>>> and that produces:
>>>>> Mysql2::Error: index wine_core: parse error: Sphinx expr: syntax error, 
>>>>> unexpected TOK_USERVAR near '@rank'
>>>>> 
>>>>> What's the proper way of specifying this in the new version?
>>>>> 
>>>>> Thanks.
>>>>> 
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google Groups 
>>>>> "Thinking Sphinx" group.
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msg/thinking-sphinx/-/8rDDG7z8mP0J.
>>>>> 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.

 

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