Czy istnieje prosty sposób na połączenie wyników wielu wyszukiwań Thinking Sphinx w jednym wyniku? Wszystkie te wyszukiwania są w tym samym modelu, ale wyszukiwania mają różne wyszukiwane hasła. Próbuję połączyć wyniki, aby wszystkie mogły być posortowane według kolumny daty i otrzymać odpowiednią paginację.Łączenie wyników wielu zapytań Thinking Sphinx w pojedynczy wynik w paginacji
Powiedz, że mam klasę Thinker i klasę Idea.
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
Powiedzmy, że mam dwóch myślicieli, Boba i Alice. Chcę połączyć następujące wyszukiwań:
bob.ideas.search 'pancakes', :order => :created_at, :sort_mode => :desc
alice.ideas.search 'waffles', :order => :created_at, :sort_mode => :desc
... i jakoś połączyć je tak, że zbiór (waflowe) pomysłów Boba (naleśnik) i Alice są zmieszane razem, posortowane według malejącej created_at i prawidłowo stronicowana przez Myślący Sfinks. W rzeczywistym przypadku mógłbym połączyć w ten sposób od 2 do 15 wyszukiwań.
Wiem, że metoda wyszukiwania zwraca tablicę ThinkingSphinx :: Search <. Myślałem o ręcznym łączeniu tych obiektów razem, ale fakt, że szukam zarówno sortowania, jak i paginacji, sprawia, że jest to trochę trudne.
Czy jest jakiś elegancki sposób na zrobienie tego w Myślącym Sfinksie, czy też niczego nie brakuje, a ja sam muszę się przewrócić?
Świetna propozycja, ale ta kwerenda będzie znaleźć również znaleźć pomysły Bob zawierające „wafle” i pomysłów autorstwa Alice, które zawierają „naleśniki” . Chcę tylko, by hasło "naleśniki" odnosiło się do pomysłów bobu i "gofrów" do pomysłów alice. –