太阳黑子中每个类的Boost_场
所以在太阳黑子中,有可能做到这一点:太阳黑子中每个类的Boost_场,boost,solr,sunspot,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 也可以这样做来提高能量场吗
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_字段不占用块:
QUERY_FIELD_BOOST_OPTIONS[m.name.underscore.to_sym].each do |field, boost|
boost_fields(field => boost) { with(:class, m) }
end
我还没有找到一种直接的方法来做到这一点,但是您可以通过使用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