我有用户模型的Rails项目
它有两个字段::name
,:surname
我也有日落搜索:
searchable do
text :name
text :surname
end
当我进行搜索时:
User.solr_search { fulltext 'Name Surname' } .results
如何以这样的顺序获得结果:
'Name Surname'
'Surname'
'Name'
我也找到了,但我不明白我需要什么 https://github.com/sunspot/sunspot/wiki/Matching-substrings-in-fulltext-search
答案 0 :(得分:1)
您可以使用助推器,以便在姓名结果和姓氏和姓名结果之前输入姓氏结果。
searchable do
text :surname, boost: 2.0
text :name, boost: 1.0
end
你要求任何术语匹配,然后在得分上降序排列。匹配名称和姓氏的结果将得分更高,只有姓氏更低,只有姓名最低。
@search=User.search
fulltext "#{name_variable} #{surname_variable}", :minimum_match => 1
order_by(:score, :desc)
end