Microsoft图形邮件搜索严格的值

问题描述 投票:1回答:1

我的搜索参数有问题。我想在我的查询中传递一个短语。例如,我正在寻找主题为“测试1”的电子邮件。为此,我正在做这个资源。

https://graph.microsoft.com/v1.0/me/messages?$search="subject:Test 1"

但此查询的行为是:在主题中查找包含“Test”的邮件或在任何其他字段中查找包含“Test”的邮件。参考KQL Syntax

短语(包括两个或多个单词,用空格分隔;但是,单词必须用双引号括起来)

所以,为了做我想要的,我必须在我的短语周围加上双引号(“)来进行严格的值搜索。如下所示

subject:"Test 1"

这个问题就在于此。 Microsoft图形api在参数$ search之后已经使用双引号(“)。

?$search="Key words"

所以我不能做KQL文档中提到的内容。

https://graph.microsoft.com/v1.0/me/messages?$search="subject:"Test 1""

这是一个错误:

"Syntax error: character '1' is not valid at position 15 in '\"subject:\"test 1\"\"'.",

这是一种预期的行为。我很确定它不起作用。

如果有人对解决方案或解决方法有任何建议,我就是买家。

到目前为止我已经尝试过的事情:

  • 使用简单的报价
  • 在$ select =之后删除引号
  • 删除主题部分$ select =“Test 1”,行为与本文中提到的第一个请求相同。它将查找包含“test”或“1”的电子邮件。

最好的祝福。

编辑:在sasfrog的anwser之后:我使用了$ filter:它适用于简单的运算符AND,OR。我使用Not运算符有一些错误。顺便说一下,你必须使用orderby参数按日期显示结果,并在过滤器参数中添加字段。

例1(工作,我先要求的):

https://graph.microsoft.com/v1.0/me/messages/?$orderby=receivedDateTime desc &$filter=receivedDateTime ge 1900-01-01T00:00:00Z AND contains(subject,'test 1')

例2(不工作)

https://graph.microsoft.com/v1.0/me/messages/?$orderby=receivedDateTime desc &$filter=(receivedDateTime ge 1900-01-01T00:00:00Z AND contains(subject,'test 1')) NOT(contains(from/EmailAddress/address,[specific address]))

编辑2用滤波器参数进行一些测试后。 NOT运算符仍然无法正常工作,因此使用“ne”(非等于)示例2变为:

  https://graph.microsoft.com/v1.0/me/messages/?$orderby=receivedDateTime desc&$filter=(receivedDateTime ge 1900-01-01T00:00:00Z AND contains(subject,'test 1')) AND (from/EmailAddress/address ne [specific address])

更新:其他解决方案与$ search

使用$ filter很棒,但看起来有时很慢。所以我找到了关于我的问题的解决方法。在所有术语之间使用AND运算符。

例4:我正在寻找主题为测试1的邮件;设value =“test 1”。所以你必须使用空间分隔符来拼接它。并且在编写了一些代码来操作这个数组之后,获得类似下面的内容。

$search="(subject:test AND subject:1)"

如果您使用多字段搜索,括号可能很重要。和Voilà。

email search microsoft-graph query-parameters
1个回答
1
投票

不确定它是否足以满足您的需求,但如何在contains查询中使用filter函数:

https://graph.microsoft.com/v1.0/me/messages?$filter=contains(subject,'Test 1')

听起来你已经在看doco但here it is以防万一。

更新,这对我来说使用search方法:

https://graph.microsoft.com/v1.0/me/messages?$search="subject:'Test 1'"

© www.soinside.com 2019 - 2024. All rights reserved.