文档大小调整 Search.Score - 无形中降低了 Scoring profile 分数

Document size adjusting Search.Score - virtually reducing Scoring profile score

我们正在使用评分配置文件来驱动相关性和调整分数,即使用评分配置文件中的函数将属性 isActive 的相关性提高 1 x 50,同时通过传递 &searchFields=** 在索引上搜索特定字段****

然而 Search.Score 似乎被文档的大小高度压缩了,较小的大小可能是由于 TF-IDF 的高分......

这违背了使用评分配置文件的目的,但是在我们的例子中,由于我们正在传递搜索字段,因此我们不希望评分因文档大小而受到影响。

在未传递 searchFields 的情况下,我们希望根据大小调整分数,即在所有可搜索字段中进行自由格式搜索。

示例搜索查询 -

agency temps&$count=true&$top=30&$skip=0&searchMode=All&$filter=(CompanyCode eq '13453' and VNumber eq '00023232312016') &scoringProfile=BusinessProfile1&searchFields=VCategory

我想知道新的 featuresMode preview 功能是否对您有帮助?使用它,您可以从搜索查询中获取更多信息,例如逐个字段的 uniqueTokenMatches 和 termFrequency。使用它,您可以根据需要在客户端调整顺序。

此外,您说的是默认值是类似评分的 TF-IDF 是正确的,但是,您可能也有兴趣尝试 BM25,虽然它不能解决您的要求,但可能会更有效帮助获得您正在寻找的分数。

目前我采用了Liam建议的调整算法BM25参数的方法,并在创建索引时将b添加为0.0json,这样在TF期间就不会使用文档大小-IDF 在计算文档分数时,

   "similarity": {
    "@odata.type": "#Microsoft.Azure.Search.BM25Similarity",
    "b" : 0.0,
    "k1" : 1.3
}

然而,同时识别出索引上的另一个字段与索引上记录的大小相关,即该字段的大小越大,该字段的值就越高,并在应该考虑文档大小的情况下将其用于评分配置文件在得分中。