如何通过Azure Graph API实现类似SQL LIKE的组displayName精准模糊查询?
解决Azure Graph API精确匹配displayName子字符串的问题
你当前遇到的问题是因为使用了$search参数——这个参数是全文检索,会对查询关键词进行分词处理,比如"123-move"会被拆分成"123"和"move"两个独立的检索项,所以包含"1234"和"move"的"1234-move"也会被匹配到。
要实现类似SQL中like '%123-move%'的精确子字符串匹配效果,应该改用$filter参数结合contains函数,具体操作如下:
- 替换原请求中的
$search参数为$filter=contains(displayName, '123-move') - 完整的API请求URL如下:
https://graph.microsoft.com/v1.0/groups?$select=id,displayName,description,groupTypes&$orderby=displayName&$top=100&$filter=contains(displayName, '123-move')
注意事项:
contains函数会严格匹配目标属性中的子字符串,只有当displayName中**完整包含"123-move"**的条目才会被返回,不会出现类似"1234-move"的误匹配。- 确保你的应用或账号拥有读取组资源的权限(比如
Group.Read.All)。 - 如果需要区分大小写匹配,可以改用
match函数配合正则,但contains默认是不区分大小写的,符合大多数场景需求。
内容的提问来源于stack exchange,提问作者mhdwrk
相关产品推荐
相关产品推荐

