在Azure搜索建议中使用top

在Azure搜索建议中使用top,azure,azure-cognitive-search,Azure,Azure Cognitive Search,我正在用Azure search构建搜索页面。在我的页面上,我有一个搜索框。我想为用户提供一些建议。为了做到这一点,我在索引上使用了。此时,我有一个包含以下查询字符串的请求: search=sta&suggesterName=sites&$top=3 我的问题是,top如何决定返回哪三个结果?它是在搜索索引时遇到的前三个匹配项吗?还是别的什么?基于URL结构,我不认为它使用了评分配置文件。所以,我排除了相关性。但后来我开始阅读有关最小覆盖率字段的内容,我感到困惑 如果sugge

我正在用Azure search构建搜索页面。在我的页面上,我有一个搜索框。我想为用户提供一些建议。为了做到这一点,我在索引上使用了。此时,我有一个包含以下查询字符串的请求:

search=sta&suggesterName=sites&$top=3
我的问题是,top如何决定返回哪三个结果?它是在搜索索引时遇到的前三个匹配项吗?还是别的什么?基于URL结构,我不认为它使用了评分配置文件。所以,我排除了相关性。但后来我开始阅读有关
最小覆盖率
字段的内容,我感到困惑


如果
suggest
端点只返回它遇到的第一个[
top
]匹配项,那么为什么需要
minimumCoverage
字段呢

通常,
$top
将根据查询其余部分指定的顺序为您提供前N个结果。对于没有
$orderby
的查询,排序顺序按相关性得分递减。这适用于
建议
搜索

请注意,仅仅因为您没有评分配置文件(例如使用
建议
),并不意味着Azure Search不会计算每个文档的相关性分数。评分模式可以影响评分,但不能完全定义评分

对于带有
$orderby
的查询,结果的顺序首先由
$orderby
中的字段定义,然后由分数定义(如果有任何联系要断开)


minimumCoverage
与订购或
$top
无关。这与搜索查询的分布方式有关。每个查询都针对索引的不同子集并发执行(无论您是否有多个搜索单元,都会发生这种情况)。有时,无论什么原因,这些子集中的一个子集都无法执行,通常是在您的搜索服务处于重载状态时。<代码>最小覆盖率>代码>参数提供了一种放松规则的方法,该规则通常表示“x%的索引必须成功执行查询以考虑整体查询成功”(x默认为<代码>搜索< />代码>默认为<代码>建议)。这是一种在重负载或部分停机情况下权衡搜索结果完整性以获得更高可用性的方法。

感谢您的回复。不过,在建议的上下文中,我对
$top
仍然有点不清楚。如果我使用
建议
查询,是否仍考虑相关性?
suggest
端点没有像
search
端点那样的
scoringProfile
参数。这是否意味着仍然会对建议进行评分,并且只使用搜索索引中的
defaultScoringProfile
?谢谢你把这件事弄清楚!对不起,原来的答案不清楚。我还意识到我在搜索和建议之间的区别上说错了。我对我的答案进行了编辑,使之更加清晰和正确。如果它仍然不能回答您的问题,请告诉我。谢谢您的澄清。现在对我来说这很有意义。