Azure搜索 - 想要随机结果集

时间:2017-06-14 21:42:28

标签: azure-search

我正在使用Azure Search服务替换ElasticSearch集群,这主要是由于基础架构托管/监控问题。到目前为止,事情进展顺利,但我需要考虑的一个场景是为查询检索10个随机结果。在ElasticSearch中,我们只使用了Nest库中的RandomScore函数,这已经足够了。

我已经阅读了一些关于评分档案的内容,但这似乎并不符合我的需要,因为它没有随机评分聚合函数。

我是否遗漏了如何在本地做这件事的事情?

2 个答案:

答案 0 :(得分:1)

不幸的是,无法在Azure搜索中获得随机排序的结果。请在我们的UserVoice上申请此功能,以帮助我们确定优先顺序:https://feedback.azure.com/forums/263029-azure-search

解决方法可能是在索引中添加一个字段,该字段在索引时在某个范围内填充一些随机生成的整数。当您要调用10个随机文档时,您的应用程序将在该范围内随机生成整数,以在该字段上创建过滤子句以获得随机化结果。

答案 1 :(得分:0)

此刻尝试一下。我正在使用两步过程:

  1. 生成查询,但设置$count=true$top=0。查询结果应包含一个名为@ odata.count的字段。
  2. 然后可以从0到@ odata.count之间随机选择一个整数,然后使用$top=1$skip=<random number>返回单个随机条目。有一个警告:$skip will only accept numbers less than 100000