当我有多个匹配的字段时,得分不会增加。
search_results = Subscription.search(
params[:query], # The search query ("martin" in my example)
fields: Admin::GlobalSearch.boosts, # An array like ["prénom^3","nom^3.5","email^1.5"]
operator: "or",
load: false,
highlight: true,
limit: 5,
misspellings: {below: 5})
从逻辑上讲,我希望在第二次使用“ vincent martin ”进行搜索时,名为 Vincent Martin 的人得分会更高。但是他是一样的。一个主意吗?
谢谢
答案 0 :(得分:0)
您可以使用解释选项来调试评分:
<div class="table-responsive">
答案 1 :(得分:0)
您要确保按相关性排序。
search_results = Subscription.search(
params[:query], # The search query ("martin" in my example)
fields: Admin::GlobalSearch.boosts, # An array like ["prénom^3","nom^3.5","email^1.5"]
operator: "or",
load: false,
highlight: true,
limit: 5,
misspellings: {below: 5},
order: { _score: :desc }
)
也可以使用explain: true
而不是debug: true
来显示结果集和返回的分数。解释将向您显示为什么分数是原来的样子。