如何更改字段的范围?

时间:2016-04-03 12:46:13

标签: azure-search

我正在试验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.MinValueDouble.MaxValue值来确定范围。但是,我不确定Azure搜索是否有这样的常量可用。我也不确定我的得分档数范围内是否可以使用负数。

有没有办法在未知的值范围内定义评分档案?

1 个答案:

答案 0 :(得分:0)

在这种情况下,我的意见是对 cost 值应用某种分组哈希。或者创建一个新属性,该属性是 cost 值的分组结果(因此您仍然可以使用 cost 来显示该值)。

在将项目添加到索引之前,您可以在C#上计算此值(使用Double.MinValueDouble.MaxValue)。

它可能不是绝对适合未来的,但您可以随时调整是否由于新的更高价格而出现新的存储桶。

通过这种方式,您可以事先了解可能生成的桶并相应地进行提升,从而简化功能。

幅度函数有一个 constantBoostBeyondRange ,如果它超过范围的末尾也可以使用。