Rails用太阳黑子搜索

时间:2014-04-04 23:02:56

标签: ruby-on-rails search solr full-text-search sunspot

我在工作和公司之间有一对多的关联,我已经实施了一个使用太阳黑子宝石的工作搜索表单,但我想在搜索一个公司名称时我已经搜索了公司的所有工作结果我怎么能这样做

这是我的工作模式

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

1 个答案:

答案 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,这些不同领域之间的重叠,你可以得到一些有趣的搜索结果。