按特定数字增加 CloudSearch _score

Increase CloudSearch _score by specific number

我是 AWS cloudsearch 的新手,有相关分数 (_score) 是根据搜索词出现次数自动计算的..

我的问题是我可以根据特定的键值将相关性得分 (_score) 提高特定的量吗..

示例:

假设 cloudsearch returns 关注两个文档

fields: {
    {
       fullname: "Daniel Wildt",
       active: "T",
       _score: "82"
    }
    {
       fullname: "Robert",
       active: "F",
       _score: "84"
    }
}

我希望第一个文档 (Daniel Wildt) 更高...这意味着 active = T aws 应该为分数增加一些东西

遗憾的是,您不能直接使用自定义 rank,因为它仅适用于支持排序的数字字段(整数、双精度、日期)。

这里有几个备选方案

  • 排序:如果你打算给active字段很大的权重,它将变得足够重要,在功能上等同于[=12] =] 运算符。也就是说,您只需在查询中添加 sort=active desc 即可获得 F
  • 之前的 T 个结果
  • 转换为 int:在提交要索引的文档之前将 T 和 F 映射为数值,例如 T=1 F=0,然后在自定义排名表达式中使用它们影响结果的排序 &expr.myrank=_score+active&sort=myrank
  • 字段权重:将active:'T'添加到您的查询中,这可能会排除 active=F 的结果,然后使用字段权重来调整这部分的影响查询:q.options={fields:['active^0.5']}。这将需要一些调整