我在工作和公司之间有一对多的关联,我已经实施了一个使用太阳黑子宝石的工作搜索表单,但我想在搜索一个公司名称时我已经搜索了公司的所有工作结果我怎么能这样做
这是我的工作模式
class Job < ActiveRecord::Base
belongs_to :company
searchable do
text :job_title, boost: 4
text :profile_recherche
end
这是我公司的模特
class Company < ActiveRecord::Base
has_many :jobs
这是我的工作搜索控制器
def search
@jobs = Sunspot.search(Job) do
keywords params[:query]
fulltext params[:query]
paginate(page: params[:page], per_page: 1)
end.results
respond_to do |format|
format.html { render :action => "index" }
end
end
答案 0 :(得分:0)
听起来您想通过job_title,profile_reserche和company.name搜索Jobs。如果我正确猜测你想要什么,那么改变你可搜索的块就应该这样做:
class Job < ActiveRecord::Base
belongs_to :company
searchable do
text :job_title, boost: 4
text :profile_recherche
text :company_name do
company.name
end
end
end
这里需要注意的是,如果你在令牌,词干,n-gram,这些不同领域之间的重叠,你可以得到一些有趣的搜索结果。