我在一个应用程序中使用ThinkingSphinx,现在我没有对我的结果做任何类型的订单。但是,我想通过一个人可以在页面上点击的链接来选择这个选项,它只是通过URL传递“刷新”页面,现在已经订购了结果。
在.search参数中,我尝试执行:order => params[:o]
然后在传递o=columnname
的网址中,但这似乎不起作用。
请注意,当我对订购进行硬编码时,它工作正常,我没有索引/使DB列可排序的问题。我想通过一个URL参数来实现它,结果可以按顺序显示。
答案 0 :(得分:1)
根据Sphinx documentation,您要用于排序的字段必须标记为可排序。使用has
定义的属性不必标记,因为所有属性都是可排序的:
class Article
..
define_index do
indexes title, :sortable => true
indexes author(:name), :as => :author, :sortable => true
..
end
然后可以使用:order
和:sort_mode
参数来定义排序顺序:
sort_order = params[:o]
Article.search "pancakes", :order => sort_order, :sort_mode => :desc