Sunspot、SOLRを使用してファセット検索をセットアップしました。このような:
for row in @search.facet(:facet_id).rows
link_to row.instance.name, :url_for(:search => params[:q], :facet_id => row.value)
私の問題は、次のようにコントローラーでファセット検索を実行するときです。
@search = Sunspot.search(MyModel) do
keywords search_text
facet :facet_id
with(:facet_id, params[:facet_id]) if params[:facet_id].present?
end
with(:facet_id, params[:facet_id]) 条件に基づいてファセット数が計算されるようになりました。この条件なしでファセット数が常に計算されるようにします。
検索を 2 回実行する必要がありますか? 1 つは条件なしの検索用 (ファセット数を計算するため) で、もう 1 つは条件付きで結果を取得するためのものです。または、1 つの SOLR クエリでこれを行う方法はありますか。
ありがとう
ハミッシュ