Объединение результатов нескольких запросов Thinking Sphinx в один результат с разбивкой на страницы

Есть ли простой способ объединить результаты нескольких поисков Thinking Sphinx в один результат? Все эти поисковые запросы основаны на одной модели, но поисковые запросы имеют разные условия поиска. Я пытаюсь объединить результаты, чтобы их можно было отсортировать по столбцу даты и получить правильную разбивку на страницы.

Допустим, у меня есть класс «Мыслитель» и класс «Идея».

class Thinker < ActiveRecord::Base
  has_many :ideas
end

class Idea < ActiveRecord::Base
  belongs_to :thinker

  define_index do
    indexes text
    has created_at
  end
end

И скажем, у меня есть два мыслителя, Боб и Алиса. Я хочу объединить следующие поисковые запросы:

bob.ideas.search 'pancakes', :order => :created_at, :sort_mode => :desc
alice.ideas.search 'waffles', :order => :created_at, :sort_mode => :desc

... и каким-то образом объединить их так, чтобы коллекция идей Боба (блин) и Алисы (вафля) смешивалась вместе, отсортировывалась по убыванию created_at и должным образом разбивалась на страницы Thinking Sphinx. В реальном варианте использования я мог бы объединить от 2 до 15 запросов таким образом.

Я знаю, что метод поиска возвращает ThinkingSphinx :: Search

Есть ли элегантный способ сделать это в Thinking Sphinx, или я ничего не упускаю, и мне приходится кататься самостоятельно?

5
задан Przemek Kujonewicz 19 January 2012 в 07:21
поделиться