Ste*_*sić 6 microsoft-graph-api
当我在这里查看查询参数的文档时,我注意到有两个查询参数似乎做了完全相同的事情:filter和search。
我只是想知道它们之间有什么区别,什么时候使用一个而不是另一个。
Mar*_*eur 12
虽然它们很相似,但操作方式略有不同。
$search使用关键字查询语言 (KQL),并且仅受message和person集合支持(即您不能$search在大多数端点上使用)。默认情况下,它会搜索多个属性。最重要的$search是“包含”搜索,这意味着它将在字符串中的任何位置查找您的搜索词/短语。
例如,将在、、 或属性/messages?$search="bacon"中的任意位置搜索单词“bacon” 。fromsubjectbody
与 不同的是$search,该$filter参数只搜索指定的属性,不支持“包含”搜索。它还适用于几乎每个端点。在大多数地方,它支持以下运算符:等于 ( eq)、不等于 ( ne)、大于 ( gt)、大于或等于 ( ge)、小于 ( lt)、小于或等于 ( le)、和 ( and) 或 ( or) ,而不是 ( not),并且(在某些端点上)以 ( ) 开头startsWith。
例如,/messages?$filter=subject eq 'bacon'将仅返回主题为“bacon”的消息。
搜索和过滤都会减少您最终收到的结果集,但它们的操作方式不同。
微软的文档中指出了这一点:
Returns results based on search criteria.Filters results (rows).搜索可以返回的结果)出于性能目的,如果可以的话,最好同时使用两者,搜索以缩小结果范围(例如使用搜索索引),然后对返回的结果进行细粒度过滤。
| 归档时间: |
|
| 查看次数: |
1973 次 |
| 最近记录: |