太阳黑子全文搜索与OR

时间:2014-04-08 20:33:29

标签: ruby-on-rails ruby sunspot

我有用户模型的Rails项目 它有两个字段::name:surname 我也有日落搜索:

searchable do
  text :name
  text :surname
end

当我进行搜索时: User.solr_search { fulltext 'Name Surname' } .results 如何以这样的顺序获得结果:

  1. 其中姓名为'Name Surname'
  2. 其中只有姓氏为'Surname'
  3. 其中只有名称为'Name'
  4. 我也找到了,但我不明白我需要什么 https://github.com/sunspot/sunspot/wiki/Matching-substrings-in-fulltext-search

1 个答案:

答案 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