我正在使用带有弹性搜索的SearchKick,并试图返回分数。例如,如果我进行了这样的搜索:
Profile.search("NYC").first
我将取回与该搜索匹配的最高分数的记录。我还想返回每条记录的分数。我知道我可以抓取 searchkick 响应并解析它,但是有没有更快的方法将分数合并到返回的记录中?
我正在使用带有弹性搜索的SearchKick,并试图返回分数。例如,如果我进行了这样的搜索:
Profile.search("NYC").first
我将取回与该搜索匹配的最高分数的记录。我还想返回每条记录的分数。我知道我可以抓取 searchkick 响应并解析它,但是有没有更快的方法将分数合并到返回的记录中?
要获得具有相应分数的所有配置文件,请执行以下操作:
results = Profile.search("NYC")
results_with_scores = results.zip(results.hits.map{ |hit| hit["_score"] })
现在每个元素results_with_scores
的形式如下:
`[Profile_object, corresponding_score]`
使用 SearchKick v2.0.1 或更高版本,您可以:
Profile.search("NYC").first.search_hit['_score']