Thinking_sphinx сортировка по ассоциациям - PullRequest
0 голосов
/ 18 июня 2010

Я пытаюсь отсортировать результаты поиска с поиском мышления.Столбцы, которые я хочу отсортировать, находятся в связанных таблицах:

class Membership < ActiveRecord::Base

  define_index do
   indexes :title
   indexes user.first_name, :as => :first_name
   indexes user.last_name, :as => :last_name

   has :organization_id, :active
   set_property :delta => true
 end

 # begin
 sphinx_scope(:by_organization) do |org|
   {:with => {:organization_id => org.id, :active => true}}
 end

 sphinx_scope(:sort_by_name) do 
   {:order => 'last_name, first_name'}
 end

end

Затем я вызываю код следующим образом:

search_results = Membership.by_organization(Organization.current).sort_by_name.search((search_value || ""), :page => (page || 1), :per_page => 10)

Если я не использую имя_сортировки, то я получаюправильное количество возвращаемых значений.После добавления метода сортировки я не получаю строк.

Я также пытался передать его в метод поиска с теми же результатами.

1 Ответ

1 голос
/ 19 июня 2010

1) для сортировки полей необходимо добавить: sortable => true

define_index do
  indexes :title
  indexes user.first_name, :as => :first_name, :sortable => true
  indexes user.last_name, :as => :last_name, :sortable => true

  has :organization_id, :active
  set_property :delta => true
end

2) необходимо добавить направление сортировки к опции заказа

sphinx_scope(:sort_by_name) do 
  {:order => 'last_name ASC, first_name ASC'}
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...