按特定数字增加 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']}
。这将需要一些调整
我是 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']}
。这将需要一些调整