是否有一種簡單的方法將多個Thinking Sphinx搜索的結果合併爲一個結果?所有這些搜索都使用相同的模型,但搜索具有不同的搜索術語。我想要做的是將結果合併,以便它們都可以按日期列排序並獲得適當的分頁。將多個Thinking Sphinx查詢的結果合併爲一個分頁結果
假設我有一個Thinker類和一個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
並說我有兩個思想家,鮑勃和愛麗絲。我想下面的搜索結合起來:
bob.ideas.search 'pancakes', :order => :created_at, :sort_mode => :desc
alice.ideas.search 'waffles', :order => :created_at, :sort_mode => :desc
...並以某種方式將它們組合起來,這樣的Bob的(煎餅)和Alice的(鬆餅)概念的綜合體混合在一起,通過降created_at排序,並適當通過分頁思維獅身人面像。在實際使用情況下,我可以在2至15個搜索範圍內以這種方式進行組合。
我知道搜索方法返回一個ThinkingSphinx :: Search <數組。我想到了將這些對象手動拼接在一起,但是我正在尋找排序和分頁的事實,這使得這有點棘手。
在思考獅身人面像中有沒有一種優雅的方式來做到這一點,或者我不會錯過任何東西,我幾乎必須推出自己的?
偉大的建議,但此查詢會發現還發現由Bob包含「薄煎餅」理念包含「華夫餅乾」和想法愛麗絲。 我只希望「煎餅」搜索詞適用於鮑勃的想法和「華夫餅」愛麗絲的想法。 –