Microsoft Graph API - $search 查询不会对所有结果进行分页

Microsoft Graph API - $search queries do not page through all results

当使用 $search 对 Microsoft Graph API 中的消息执行查询时,可以使用 odata.nextLink 参数(它本身包含一个skiptoken).

我注意到对于某些搜索查询,我有时不会收到 nextLink 属性 跟随,因此我无法继续加载结果集的下一页,尽管肯定有更多的结果要加载。我已通过在 Outlook 中与其他筛选器查询进行比较来验证这一点。

重现步骤:

  1. 在 Graph Explorer 中,输入以下查询:https://graph.microsoft.com/v1.0/me/messages?$search="to:[your email address]"&$top=25

  2. 加载结果时,点击@odata.nextLink的值加载下一页

  3. 继续跟随@odata.nextLink直到结果中没有返回nextLink参数

  4. 您会注意到您还没有到达收件箱的开头(按时间顺序)但是没有 @odata.nextLink 属性 可以跟随

我只能假设这是 API 的错误 - 我在文档中没有看到任何关于页数限制的信息 (https://msdn.microsoft.com/office/office365/api/complex-types-for-mail-contacts-calendar#UseODataqueryparametersSearchrequests)。

有人能帮忙吗?这个问题基本上使 $search 功能对我们无用。

为了优化性能,此 API 目前 returns 默认情况下最多有 250 个搜索结果。听起来您可能正在分页到 250 个结果的末尾,此时不会有 nextLink。我们目前正在对 API 进行改进,因此很高兴听到此反馈并帮助我们确定修复问题的优先级(在这种情况下,允许您指定返回的最大结果数将有助于您实现您的方案).谢谢!