从天蓝色搜索中获取传播结果

Get a spread result from azure search

我需要一些帮助来使 Azure 搜索服务为我提供正确的结果集。

假设我 运行 一个带有过滤器的查询,结果集大于 1000 条记录,那么搜索服务将 return 一个 link 用于下一页。这种限制是可以理解的,但也会导致问题。

例如,我将使用这样的过滤器查询我们的用户索引:

$filter=coinsWon gt 5000 and coinsWon lt 50000

此查询可能 return 2 000 000 条记录。从那 2 000 000 条记录中,我只需要 25 条记录。我不能使用 Top=25,因为那只会给我最接近 5000 或最接近 50000 的 25 条记录。

我需要从 2000000 条记录中选出 25 条记录的记录集,分布在 5000 到 50000 coinsWon 之间。例如,coinWon 的记录等于 5 000、7 000、9 100、11 000、12 250、15 000、15 500、17 000、20 000、21 000、23 000、24 500、27 000、35 000、40 000 , 42 000, 45 000, 47 000, 48 000, 50 000.

由于该服务将结果集限制为 1000 条记录,我也无法在我们的 API 中开发此功能。即使 Microsoft 取消了 1000 条记录的限制,将 return 2 000 000 条记录添加到我们的 API 然后从记录集中执行传播选择仍然是非常愚蠢的。能够向搜索服务请求传播记录集更有意义:

$filter=coinsWon between 5000-50000 spread$top=25

有没有人知道如何解决这个问题? :)

遗憾的是,Azure 搜索不支持返回随机分布的搜索结果。如果您认为这是 Azure 搜索应该支持的功能,您可以添加建议 here