太阳黑子中每班的Boost_fields

时间:2012-05-02 19:57:11

标签: boost solr sunspot

所以在太阳黑子中,可以这样做:

QUERY_DOCUMENT_BOOST_OPTIONS = {
  :user => 2,
  :product => 1,
}

fulltext query do
  [User, Product].each do |m|
    boost(QUERY_DOCUMENT_BOOST_OPTIONS[m.name.underscore.to_sym]) { with(:class, m) }
  end
end

是否也可以做这样的事情来提升领域?因此,只有在某个类的文档中才会提升字段。

有可能实现这样的目标吗?它甚至可以直接在solr中使用吗?当然,这不起作用,因为boost_fields不会占用块:

QUERY_FIELD_BOOST_OPTIONS[m.name.underscore.to_sym].each do |field, boost|
  boost_fields(field => boost) { with(:class, m) }
end

1 个答案:

答案 0 :(得分:0)

我没有找到直接的方法来执行此操作,但您始终可以使用sunspot的:as选项命名空间字段名称。

那么你可以做一个模型:

searchable do 
  text: title, :as => 'model_title_text'
end

搜索时你会做

search = Sunspot.search [Model] do
  fulltext query
  adjust_solr_params do |params| 
    params['qf'] += ' model_title_text^10'
  end
end