ThinkingSphinx通过URL参数订购

时间:2012-03-05 20:04:08

标签: ruby url sorting thinking-sphinx

我在一个应用程序中使用ThinkingSphinx,现在我没有对我的结果做任何类型的订单。但是,我想通过一个人可以在页面上点击的链接来选择这个选项,它只是通过URL传递“刷新”页面,现在已经订购了结果。

在.search参数中,我尝试执行:order => params[:o]然后在传递o=columnname的网址中,但这似乎不起作用。

请注意,当我对订购进行硬编码时,它工作正常,我没有索引/使DB列可排序的问题。我想通过一个URL参数来实现它,结果可以按顺序显示。

1 个答案:

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