【问题标题】:Paging in Azure search when results have equal scores当结果具有相同分数时,Azure 搜索中的分页
【发布时间】:2017-09-21 09:52:45
【问题描述】:

我在我的电子商务网站上使用 Azure 搜索,现在我在搜索页面上遇到了分页问题。当我重新加载搜索页面时,我可以获得不同的产品顺序。所以当我使用分页时,我可以在不同的页面上看到相同的产品,这很关键。

我开始研究出了什么问题,我在 Microsoft 文档 https://docs.microsoft.com/en-us/rest/api/searchservice/add-scoring-profiles-to-a-search-index#what-is-default-scoring 上找到了此信息

搜索得分值可以在整个结果集中重复。为了 例如,您可能有 10 个项目得分为 1.2,20 个项目得分为 1.0 分,0.5 分 20 项。当多次命中 具有相同的搜索得分,相同得分项目的排序不 已定义,且不稳定。再次运行查询,您可能会看到 物品移动位置。给定两个分数相同的项目,有 不能保证哪个先出现。

因此,如果我得到正确的答案,我将面临这个问题,因为产品具有相同的分数。

如何解决这个问题?

【问题讨论】:

    标签: azure search azure-cognitive-search scoring


    【解决方案1】:

    你没看错!由于您获得的产品具有相同的分数,因此无法保证哪个产品首先出现。 为了在这个阶段避免这种情况,您可以在 $orderby 参数中添加一个具有唯一值的字段,这样您就可以保证相同的顺序。但是,这种方法没有考虑得分。我们目前正在努力解决这个问题。一旦解决方案可用,我们将更新此答案(此时的 ETA 是几周,而不是几个月)。

    【讨论】:

      【解决方案2】:

      请注意,您现在可以使用 search.score() 函数按分数排序: 从下面的链接: https://docs.microsoft.com/en-us/rest/api/searchservice/odata-expression-syntax-for-azure-search。 "您可以指定多个排序条件。表达式的顺序决定了最终的排序顺序。例如,要按分数降序排序,后跟评分,语法为 $orderby=search.score() desc,rating desc。"

      【讨论】:

      • 感谢您的回答!
      猜你喜欢
      • 2015-01-22
      • 2016-12-03
      • 1970-01-01
      • 2012-02-18
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多