我是Azure搜索新手,所以我只想在尝试实现它之前运行它。我们对项目进行了搜索设置,我们希望根据其初始分数和项目使用/下载次数对结果进行评分/排名。我们希望下载的项目最多显示在结果列表的顶部。
我们在搜索索引中有一个单独的字段,其中包含已使用/下载的计数(itemCount)。
我知道我必须设置一个Magnitude配置文件,但我不确定该范围的用途,因为itemCount可以包含0 - N所以我只是将范围设置为一些大数字,即100,000,000或者是什么最佳实践?
var functionRankByDownload = new MagnitudeFunction()
{
Boost = 1000,
BoostingRangeStart = 0,
BoostingRangeEnd = 100000000,
ConstantBoostBeyondRange = true,
FieldName = "itemCount",
Interpolation = InterpolationTypes.Linear
};
scoringProfile1.Functions = new List() { functionRankByDownload };
我发现分数计算如下:
((initialScore * boost * itemCount) - min)/(max-min)
所以看起来它应该可以正常工作,但是只需要知道最佳实践。
谢谢!
答案 0 :(得分:1)
这似乎很合理。根据具体情况, BoostingRangeEnd 可以是您范围内的任何合理范围。因为,您正在使用 ConstantBoostBeyondRange ,它还会适当地将范围内的值提升到范围之外。
您可能还想尝试使用此类大范围的提升值,并查看更大的提升值是否对您的方案更有帮助。