首页 > 解决方案 > 是否可以在正文中搜索具有匹配子字符串以及匹配日期的消息?

问题描述

我想在单个请求中获取按日期和正文中的内容过滤的消息列表(当然,如果可能的话)。

我完全能够从以下端点收到一个好的响应(200):

https://graph.microsoft.com/v1.0/users/user@company.com/messages?search="body:substring"

但是,这给了我一个广泛的回应,因为我只对特定周之间的案例感兴趣。此外,不可能将过滤器参数与搜索参数一起使用。

然后,关于日期过滤器,我可以使用:

https://graph.microsoft.com/v1.0/users/user@company.com/messages?$filter=(sentDateTime ge 2000-01-01) and (sentDateTime le 2100-01-01)

问题是:我也无法过滤正文,因为我收到错误 400 - 'Bad Request: Invalid filter Clause':

https://graph.microsoft.com/v1.0/users/user@company.com/messages?$filter=contains(body, substring)

现在,我的工作是:我从user@company.com请求有关特定周的所有消息,并在收到该响应后,在我的机器中本地过滤正文。这有效,但不如复合请求快。

标签: microsoft-graph-api

解决方案


您可以在您的 KQL 搜索中包含特定的日期限制,例如

https://graph.microsoft.com/v1.0/me/messages?$search="(sent>=2019-01-01 AND sent<=2019-02-01) AND (body:asx)"

那应该比过滤器产生更好的性能


推荐阅读