小编Kee*_*ble的帖子

Azure 搜索 - 按表达式排序

我们想知道,Azure 搜索是否可以实现下面提到的场景。

让我们有一个包含三列的 Azure 搜索索引:

1.  Id [Edm.String]
2.  Tags [Collection(Edm.String)]
3.  MaxScore [Edm.Int32]
Run Code Online (Sandbox Code Playgroud)

该索引包含以下两个条目:

Id  Tags                MaxScore
1   Paris,London,Rome   30
2   Paris               10
Run Code Online (Sandbox Code Playgroud)

我们还有一个评分配置文件和一个 Tag (Sum, Linear) 类型的评分函数,它以 10 分(boost = 10)评估每个标签。

我们想在这个索引中搜索带有标签“Paris, London”的记录,并根据合规百分比对其进行排序,而 100% 是列 MaxScore 中的值。

问题是默认情况下 Azure 搜索按分数对记录进行排序。所以结果如下:

Id  Tags                MaxScore    Score     %
1   Paris,London,Rome   30          20        67%
2   Paris               10          10        100%
Run Code Online (Sandbox Code Playgroud)

但是我们需要按 [%] 列按降序对记录进行排序。使 Azure 搜索可以按表达式对记录进行排序就足够了。在我们的例子中,它类似于 $orderby=score*(100/MaxScore) 。然而,这目前是不可能的。

谢谢你。

azure azure-cognitive-search

5
推荐指数
1
解决办法
2048
查看次数

标签 统计

azure ×1

azure-cognitive-search ×1