如何在Graph API SharePoint文件搜索中排除OneDrive文件
解决方法
你可以直接在搜索请求的KQL查询语句中添加过滤条件排除OneDrive对应的个人站点内容,实现仅搜索SharePoint和Teams文件的需求。
实现原理
所有OneDrive用户个人站点的站点模板ID固定为SPSPERS,而SharePoint常规站点、Teams关联站点均不会使用该模板,因此只需过滤掉所有归属该模板站点的内容即可排除全部OneDrive文件。
具体请求示例
调用接口 POST https://graph.microsoft.com/v1.0/search/query,请求体示例如下:
{ "requests": [ { "entityTypes": [ "listItem" ], "query": { "queryString": "你的搜索关键词 -SiteTemplate:SPSPERS" }, "fields": [ "id", "name", "webUrl", "lastModifiedDateTime" ] } ] }
过滤规则说明
queryString参数中开头的减号-代表排除满足后续条件的内容SiteTemplate:SPSPERS匹配所有存储在OneDrive个人站点下的内容- 该过滤规则不影响SharePoint站点、Teams关联站点下文件的搜索结果返回
内容的提问来源于stack exchange,提问作者WSI Appfactory
相关产品推荐
相关产品推荐

