我正在试验Azure搜索。我有一个Edm.Double
字段的索引。我正在创建一个评分配置文件,以通过Azure Search REST API提升此字段。目前,我有:
"scoringProfiles": [
{
"name":"myProfile",
"functions": [
{
"type":"magnitude",
"fieldName":"cost",
"boost": 2.5,
"magnitude": {
"boostingRangeStart":0,
"boostingRangeEnd":50
}
}
]
}
]
我的挑战是,我真的不知道我的数据范围是什么。我总是想要提升cost
字段。在C#中,我知道我可以使用Double.MinValue
和Double.MaxValue
值来确定范围。但是,我不确定Azure搜索是否有这样的常量可用。我也不确定我的得分档数范围内是否可以使用负数。
有没有办法在未知的值范围内定义评分档案?
答案 0 :(得分:0)
在这种情况下,我的意见是对 cost 值应用某种分组或哈希。或者创建一个新属性,该属性是 cost 值的分组结果(因此您仍然可以使用 cost 来显示该值)。
在将项目添加到索引之前,您可以在C#上计算此值(使用Double.MinValue
和Double.MaxValue
)。
它可能不是绝对适合未来的,但您可以随时调整是否由于新的更高价格而出现新的存储桶。
通过这种方式,您可以事先了解可能生成的桶并相应地进行提升,从而简化功能。
幅度函数有一个 constantBoostBeyondRange ,如果它超过范围的末尾也可以使用。