【发布时间】:2018-12-19 02:52:22
【问题描述】:
我需要一些帮助,让 Azure 搜索服务为我提供正确的结果集。
假设我使用过滤器运行查询,结果集大于 1000 条记录,则搜索服务将返回下一页的链接。这种限制是可以理解的,但也会导致问题。
例如,我将使用这样的过滤器查询我们的用户索引:
$filter=coinsWon gt 5000 和 coinWon lt 50000
此查询可能返回 2 000 000 条记录。从这 2 000 000 条记录中,我只需要 25 条记录。我不能使用 Top=25,因为那只会给我最接近 5000 或最接近 50000 的 25 条记录。
我需要从 2000000 条记录中选择 25 条记录,这些记录分布在 5000 到 50000 个硬币韩元之间。例如,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 中开发此功能。即使微软取消了 1000 条记录的限制,将 2 000 000 条记录返回给我们的 API,然后从记录集中执行传播选择仍然是非常愚蠢的。能够向搜索服务请求传播记录集更有意义:
$filter=coinsWon 5000-50000 点差$top=25
有没有人知道如何解决这个问题? :)
【问题讨论】:
-
澄清一下,您是否要求在特定的coinWon间隔内随机分布搜索结果?
-
另外,为什么需要这样做?你能描述一下你的整体情况吗?
-
嗨,是的,搜索结果的随机分布,但不一定是特定的间隔。只要它几乎均匀分布,它就可以正常工作。这将用于我们正在开发的游戏中,针对用户的排名列表。我也向 Microsoft 支持寻求建议,等待他们的回复。如果我们可以在这种情况下使用搜索服务,那就太好了,但如果不能,我会用一个 redis 实例和一些代码来修复它。