【问题标题】:Limit Azure search results by minimum search.score()通过最小 search.score() 限制 Azure 搜索结果
【发布时间】:2021-10-30 12:50:06
【问题描述】:

我正在搜索产品列表,并且我想通过分数来限制结果...就我的目的而言,任何分数低于“9”的东西都应该被忽略。当按分数排序时,这很容易做到,因为我可以在返回的文档低于该阈值时截断它们。

这仍然很困难,就像我正在使用分页一样,如果没有分页,我无法知道存在多少文档,直到达到我的最低分数。

此外,我们的一些用户喜欢在获得结果后按字母顺序排序。这会导致额外的逻辑问题。

有没有办法在初始查询中排除低于某个分数的搜索结果?如果没有,是否有更好的方法来做到这一点而无需修改进入索引的数据?

我正在使用 Azure.Search.Documents v11.3.0 .NET SDK

【问题讨论】:

    标签: azure-cognitive-search azure-search-.net-sdk


    【解决方案1】:

    有没有办法排除低于某个分数的搜索结果 初始查询?

    AFAIK,不。我尝试添加像 search.score() eq 1 这样的 OData 过滤器,但是我收到了以下错误消息:

    Invalid expression: Unsupported function call: search.score. 
    This function is not supported in filters. 
    You may use this function in $orderby to sort results by score.
    Parameter name: $filter
    

    如果没有,有没有更好的方法来做到这一点而无需修改 数据进入索引?

    想一想,能不能不实现截取Azure Search的响应,不返回分数低于阈值的数据的功能?

    【讨论】:

    • 我遇到了同样的错误...当您返回 1000 条记录并需要支持分页时,后一个选项效果不佳。很糟糕,没有更清晰的方法可以做到这一点,并且由于 MS 关闭了他们的用户语音类型的反馈页面(无论如何这几乎没有用),因此无法确定这是否受支持/计划/等等。有没有办法在不更改数据的情况下对分数产生如此大的影响,以至于它不会首先返回搜索?
    猜你喜欢
    • 2022-09-30
    • 2016-12-14
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    相关资源
    最近更新 更多