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.
