Thanks, that did it. I didn't know you had to index it as a "has"
haha. :-)

On Oct 14, 10:03 pm, James Healy <[EMAIL PROTECTED]> wrote:
> Hi
>
> You need to add votes_count as an attribute in your index, and specify a
> sort order.
>
> In your model:
>
>   define_index do
>     indexes word
>                 has votes_count
>         end
>
> In your controller:
>
>   def search
>           @words = ThinkingSphinx::Search.search params[:search], :page =>
>       params[:page], :per_page => 1, :order => "votes_count DESC"
>   end
>
> If your word model is the only model indexed, it might be cleaner to do
> the controller search directly on that:
>
>   def search
>           @words = Word.search params[:search], :page => params[:page],
>                                           :per_page => 1,
>                                           :order => "votes_count DESC"
>   end
>
> James
>
>
>
> Leximo wrote:
> > I have a words table that keeps track of the total votes for a word.
> > However, I can't seem to sort it by votes. This is what I have so far:
>
> > # In words controller
>
> > def search
> >   [EMAIL PROTECTED] = ThinkingSphinx::Search.search params[:search], :page 
> > =>
> > params[:page], :per_page => 1#, :order => :votes_count
> >   end
>
> > #In words model
>
> >    define_index do
> >            indexes word
>
> > #          set_property :delta => true
>
> > #          has id, created_at
> >    end
>
> > # In search model
>
> >       def search
> >   [EMAIL PROTECTED] = Word.search params[:search]
> >       end
>
> > # In my search results
>
> >    <h1>Search words for your query</h1>
> >     <% for word in @words %>
> >       <% if word.class.name == "Word" %>
> >             <%= render :partial => "words/word", :locals => { :word =>
> > word } %>
> >       <% else %>
> >       <h1>There were no words for your query</h1><br/><br/>
> >       <% end %>
> >    <% end %>
> > <%= will_paginate @words %>
>
> > # and in my Database
>
> > create_table "words", :force => true do |t|
> >     t.string   "word"
> >     t.string   "language"
> >     t.text     "definition"
> >     t.string   "example"
> >     t.datetime "created_at"
> >     t.datetime "updated_at"
> >     t.integer  "user_id",     :limit => 11
> >     t.integer  "votes_count", :limit => 11, :default => 0
> >   end
>
> > I'm trying to sort the search results by "votes_count" so that the
> > word with the most votes appears first (Descending).
>
> > Could some one help me out, I would really appreciate it.
>
> > Thanks
>
> -- James Healy <jimmy-at-deefa-dot-com>  Wed, 15 Oct 2008 12:58:47 +1100
--~--~---------~--~----~------------~-------~--~----~
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