本篇我们将使用 Microsoft Graph 上的 Microsoft Search API 来获取只有文件/文档的结果。
引言
让我们来考虑如何使用 Microsoft Graph 上的 Microsoft Search API 来搜索 OneDrive 或 SharePoint 上的文件/文档。默认情况下,当你指定 driveItem 的 entityType 时,这将返回文件、文件夹、页面和新闻。下面是一个来自 Microsoft Graph 资源管理器的示例,用于查询 driveItem 内容。
POST https://graph.microsoft.com/v1.0/search/query
{
"requests":[
{
"entityTypes":[
"driveItem"
],
"query":{
"queryString":"contoso"
}
}
]
}
下图是一个结果示例,第一个结果为网页文件。
解决方案
为了只过滤文件/文档,我们可以在请求的 query 元素的 queryString 属性中添加以下任意一个 (ContentType或ContentTypeId)。
"query": {
"queryString": "test document AND ContentType:Document"
}
或
"query": {
"queryString": "test document AND ContentTypeId:0x0101*"
}
再来看一下同一个环境下,应用过滤之后的结果,如下图,第一个结果是文件了。
最终使用的查询为
POST https://graph.microsoft.com/v1.0/search/query
{
"requests":[
{
"entityTypes":[
"driveItem"
],
"query":{
"queryString":"contoso AND ContentType:Document"
}
}
]
}