6

標準検索に加えてファセットを使用したいと考えています。pg_searchを使用してファセットで検索結果自体を「検索」する方法はありますか?

私が知る限り、pg_search_scope は相互に排他的です (回避策はありますか?)。ありがとう!

例:

1) 「テスト」という単語でブログを検索

2) リンクをクリックして、以前の結果から 6 月にも投稿された記事のみを取得します。

4

1 に答える 1

8

私は のオリジナルの作成者であり、メンテナーです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 のようなページネーション ソリューションを最後に呼び出すこともできます。

于 2011-10-22T16:01:00.563 に答える