You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Microsoft Graph API /messages $search默认检索字段的详尽问询

关于Microsoft Graph API /messages端点$search默认检索字段的解答

你当前使用的Microsoft Graph SDK v5代码示例是正确的,$search参数确实和Outlook主搜索栏行为一致:

// C# using Microsoft.Graph SDK v5
var searchKeyword = "project budget";

var messages = await graphClient
    .Users["user@example.com"]
    .MailFolders["folderId"]
    .Messages
    .GetAsync((config) =>
    {
        config.QueryParameters.Search = searchKeyword;
        config.QueryParameters.Top = 25;
        // I also select specific properties I need
        config.QueryParameters.Select = new string[] { "subject", "from", "receivedDateTime" };
    });

针对你的三个问题,解答如下:

1. 是否存在官方发布的、详尽的/messages端点$search参数默认检索的所有字段列表?

微软官方并未公开完整且详尽的默认检索字段列表。目前文档中明确提到的可被$search默认检索的字段包括你已列出的:

  • subject
  • body(包含HTML和纯文本格式内容)
  • from(发件人地址及显示名称)
  • toRecipients、ccRecipients、bccRecipients(收件人地址及显示名称)
  • 附件内容(支持Office文档、PDF、纯文本等可索引格式)

此外,根据实际使用反馈,默认搜索还会覆盖邮件的conversationTopic(对话主题)字段,但这一点未在官方文档中明确标注。

2. 默认检索字段是否包含categories、特定Internet邮件头或其他扩展属性等元数据?

  • categories:默认不包含在$search的检索范围内。如果需要搜索邮件分类,必须使用KQL语法明确指定字段,例如search:"category:项目"。
  • Internet邮件头:默认搜索不会检索邮件头字段(如Message-ID、X-*自定义头)。若需搜索邮件头,需通过KQL结合header运算符指定,例如search:"header:X-Custom-Header=test"。
  • 扩展属性:默认情况下,无论是内置扩展属性还是自定义扩展属性,都不会被$search默认检索。只有当自定义扩展属性被标记为可索引,且通过KQL明确指定属性名称时,才能被搜索到。

3. 该搜索功能基于Exchange Online搜索服务,此API场景下的完整索引属性列表是否有相关文档记录?

Exchange Online的搜索服务确实有一套完整的可索引属性列表,但需要注意:

  • Graph API的$search默认行为仅使用其中的一个子集,并非所有Exchange索引属性都会被默认覆盖。
  • 官方文档中列出了Exchange支持的搜索索引属性,但这些属性与Graph API $search默认字段的映射关系并未被官方明确梳理。

内容的提问来源于stack exchange,提问作者John Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 21:42:44