以前に検索機能を実装したことがなく、少し行き詰まりを感じています。キーワードに基づいて結果を検索する Sunspot 検索機能があります。これはうまく機能しますが、複数選択ファセット機能を実装したいと考えていますが、基本的なファセット検索の設定方法がわかりません。
私は多対多の関係を持っています(実際にはレールではありません):
クラス People has_many :skills, :through => experience (およびその逆など)
Class People < ActiveRecord::Base
has_many :skills, :through => experience
searchable do
text :first_name, :surname
end
end
コントローラーで
@search = Sunspot.search(People)
facet :skill_ids
end
これは、私がうまくいかない基本的な例です。次のエラーが生成されます。
Sunspot::UnrecognizedFieldError: No field configured for People with name 'skill_ids'
:skill_ids へのリンクを作成する方法
モデル内の参照が欠落しているに違いないと思いますが、関係の Id を参照する例は見つかりません。私が見つけたほとんどの例では、ファセット機能を使用するときに、そのモデルに既に存在する列を使用しています。
- 基本的な実装を機能させるにはどうすればよいですか?
- ビューでこれをどのように使用しますか? hits.facet を呼び出して、スキルを反復処理する必要がありますか? これを表示するコードはどのようになりますか?
- 複数のファセットを選択して検索するにはどうすればよいですか?
- これをコミュニティ wiki に入れる必要がありますか?
お時間をいただきありがとうございます!