azure - 将 top 与 Azure 搜索建议结合使用

标签 azure azure-cognitive-search

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

search=sta&suggesterName=sites&$top=3

我的问题是,top如何确定返回哪三个结果?是在搜索索引时遇到的前三个匹配项吗?或者是别的什么?根据 URL 结构,我认为它没有使用评分配置文件。所以,我排除了相关性。但后来我开始阅读有关 minimumCoverage 字段的内容,我感到很困惑。

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

最佳答案

一般来说,$top 会根据查询其余部分指定的顺序为您提供前 N 个结果。对于没有 $orderby 的查询,排序顺序按相关性得分降序排列。这适用于建议搜索

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

对于使用 $orderby 的查询,结果的顺序首先由 $orderby 中的字段定义,然后根据分数(如果有任何关系)定义坏了。

minimumCoverage 与排序或 $top 无关。它与搜索查询的分发方式有关。每个查询都会针对索引的不同子集同时执行(无论是否有多个搜索单元都会发生这种情况)。有时,无论出于何种原因,这些子集之一都无法执行,通常是在您的搜索服务负载过重时。 minimumCoverage 参数提供了一种放宽规则的方法,该规则通常表示“索引的 X% 必须成功执行查询才能认为整个查询成功”(默认情况下 X 为 100 >搜索和默认情况下80为建议)。这是一种在重负载或部分中断的情况下权衡搜索结果完整性和更高可用性的方法。

关于azure - 将 top 与 Azure 搜索建议结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36754973/

相关文章:

c# - 无法解析 Azure 微服务中的类型的服务

Azure DevOps - 用户作为审批者触发发布

azure - 在 Azure Devops SSH 任务中运行 `sudo` 命令的安全方法

c# - 在 Azure 搜索文档中使用枚举

c# - Azure 搜索按非完整单词和特殊字符搜索不起作用

azure - Windows Nano Server 上的 Docker : There is not enough space on the disk

azure - KQL 查询以获取在 azure 中运行的 Aks 集群的节点数

azure - 是否可以使用 Azure 搜索将数据推送(使用 API)和拉取(使用索引器)到同一索引中?

azure - DataFormat.Error Power BI Desktop

azure-cosmosdb - Azure 搜索与 Azure DocumentDB 索引错误 : _ts column not present