所以在太阳黑子中,可以这样做:
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
答案 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