【问题标题】:returning the score with searchkick使用 searchkick 返回分数
【发布时间】:2017-05-17 15:28:21
【问题描述】:

我将SearchKick 与弹性搜索一起使用,并试图返回分数。例如,如果我进行了这样的搜索:

Profile.search("NYC").first

我将取回与该搜索匹配的得分最高的记录。我还想返回每条记录的分数。我知道我可以抓取 searchkick 响应并解析它,但是有没有更快的方法将分数合并到返回的记录中?

【问题讨论】:

    标签: ruby elasticsearch searchkick


    【解决方案1】:

    要获得具有相应分数的所有配置文件,请执行以下操作:

    results = Profile.search("NYC")
    results_with_scores = results.zip(results.hits.map{ |hit| hit["_score"] })
    

    现在results_with_scores 的每个元素都将采用以下形式:

     `[Profile_object, corresponding_score]`
    

    【讨论】:

      【解决方案2】:

      使用 SearchKick v2.0.1 或更高版本,您可以:

      Profile.search("NYC").first.search_hit['_score']
      

      【讨论】:

      • search_hit 不适用于 v3.1.3。我尝试使用 Profile.search("NYC").first.with_hit['_score'] 引发错误
      猜你喜欢
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      相关资源
      最近更新 更多