【问题标题】:Azure Search -- Want random result setAzure 搜索——想要随机结果集
【发布时间】:2019-08-29 09:16:30
【问题描述】:

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

我已经阅读了一些关于评分配置文件的内容,但这似乎不符合我的需要,因为它没有 Random ScoringAggregationFunction。

关于如何在本地执行此操作,我有什么遗漏吗?

【问题讨论】:

    标签: azure-cognitive-search


    【解决方案1】:

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

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

    【讨论】:

    • 我担心你会这么说。以防万一,我正在计划类似于您的解决方法。看来我得扣动扳机了。感谢您的信息!
    • 偶然发现相同的要求,我记录了我们的解决方法here
    【解决方案2】:

    目前正在尝试。我正在使用两步流程:

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

    【讨论】:

      猜你喜欢
      • 2011-09-21
      • 2015-04-20
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 2020-09-01
      • 2015-05-06
      相关资源
      最近更新 更多