繁体   English   中英

Microsoft Graph API 搜索 function 无法按预期工作

[英]Microsoft Graph API search function doesn't work as expected

我正在尝试使用 Microsoft Graph API 对我的组织的 displayName 进行基本搜索。

问题是,搜索 function 没有按预期工作。 根据我的测试,搜索 function 实际上并没有正确进行模糊搜索,逻辑显然基于startsWith和endsWith而不包含。 对于我的需要,这还不够,因为我的组织的 displayName 包含韩文名称和英文名称。 例如:

具有 displayName 的用户:이선빈(Annie Lee)

https://graph.microsoft.com/v1.0/users/?$search="displayName:이선"返回正确的结果。 https://graph.microsoft.com/v1.0/users/?$search="displayName:Annie"不返回任何结果。 https://graph.microsoft.com/v1.0/users/?$search="displayName:Lee"没有返回结果https://graph.microsoft.com/v1.0/users/?$search="displayName :Lee )" 返回正确的结果

如果不支持实际的模糊搜索,那么使用搜索 function 更新 API 有什么意义? 从一开始就支持使用startsWith 和endsWith 运算符的$filter,但是人们想要$search function 的原因是能够实际使用包含function 正确查询displayName。 似乎微软本质上“添加”了一个搜索 function 当功能上它基本上是 $filter 与 startsWith 和 endsWith 查询。

我是否缺少 API 的东西? 在我的情况下是否有可能的解决方法?

我是高级查询参数的 PM。
$search 标记化将括号字符(作为标记分隔符,因此이선빈(Annie Lee)被拆分为以下标记:

 - 이선빈
 - (
 - Annie
 - Lee
 - )

您搜索“Annie”或“Lee”的查询没有返回任何结果,这很奇怪。 我们尽了最大努力,但我们无法复制。
您能否分享搜索失败的request-id以帮助我们调试此问题?

注意:由于性能原因,我们无法实现“真实”包含算法,我们认为标记化搜索是最好的折衷方案。

PS:我们更新了文档以突出显示您的具体案例: https://docs.microsoft.com/en-us/graph/search-query-parameter#using-search-on-directory-object-collections

感谢您在上次评论中的澄清。
您可以利用非标记属性的$search行为来解决该问题:它将默认为startsWith运算符。

您的最终查询应如下所示:
/users?$search="displayName:<INPUT>" OR "givenName:<INPUT>" OR "surname:<INPUT>"

让我知道这是否适合您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM