Заказ ThinkingSphinx через параметры URL

Я использую ThinkingSphinx в приложении и сейчас не выполняю каких-либо заказов по своим результатам. Однако я хотел бы сделать это опцией с помощью ссылки, которую кто-то может щелкнуть на странице, и она просто передает ее через URL-адрес, чтобы «обновить» страницу с уже упорядоченными результатами.

В параметрах .search я пытался сделать :order => params[:o], а затем в URL-адресе, передающем o=columnname, но это, похоже, не работает.

Просто обратите внимание, когда я жестко кодирую порядок, он работает нормально, у меня нет проблем с индексированием / сортировкой столбца БД. Я просто хотел бы сделать так, чтобы с помощью аргумента URL-адреса результаты можно было отображать в порядке.


person user1015523    schedule 05.03.2012    source источник


Ответы (1)


Согласно документации Sphinx, поля, которые вы хотите использовать для сортировки, должны помечены как сортируемые. Атрибуты, определенные с помощью 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
person 0x4a6f4672    schedule 08.05.2012