標準検索に加えてファセットを使用したいと考えています。pg_searchを使用してファセットで検索結果自体を「検索」する方法はありますか?
私が知る限り、pg_search_scope は相互に排他的です (回避策はありますか?)。ありがとう!
例:
1) 「テスト」という単語でブログを検索
2) リンクをクリックして、以前の結果から 6 月にも投稿された記事のみを取得します。
標準検索に加えてファセットを使用したいと考えています。pg_searchを使用してファセットで検索結果自体を「検索」する方法はありますか?
私が知る限り、pg_search_scope は相互に排他的です (回避策はありますか?)。ありがとう!
例:
1) 「テスト」という単語でブログを検索
2) リンクをクリックして、以前の結果から 6 月にも投稿された記事のみを取得します。
私は のオリジナルの作成者であり、メンテナーですpg_search
。
Apg_search_scope
は他の Active Record スコープと同様に機能するため、それらを連鎖させることができます。
したがって、名前付きのモデルBlog
と、月番号と年番号の 2 つのパラメーターを取る別のpg_search_scope
名前search_title
付きスコープを持つモデルがあるとします。in_month
このようなもの:
class Blog < ActiveRecord::Base
include PgSearch
pg_search_scope :search_title, :against => :title
scope :in_month, lambda { |month_number, year_number|
where(:month => month_number, :year => year_number)
}
end
次に、次のように呼び出すことができます。
Blog.search_title("broccoli").in_month(6, 2011)
逆も機能するはずです:
Blog.in_month(6, 2011).search_title("broccoli")
また、Kaminari のようなページネーション ソリューションを最後に呼び出すこともできます。