在尝试将目录服务 API 搜索查询中的空格与通配符组合时,我遇到了一些意外行为:
代码
Directory ds = new GoogleDirectoryServiceManager().getDirectoryService("admin@randomdomain.com");
Directory.Users usersClient = ds.users();
String lastNameBuffer = term;
StringBuilder sb = new StringBuilder();
if(term.contains(" ")){
sb.append("\'");
sb.append(lastNameBuffer);
sb.append("*\'");
}else{
sb.append(lastNameBuffer);
sb.append("*");
}
queryString = "familyName:" + sb.toString();
users = usersClient.list()
.setDomain("randomdomain.com")
.setQuery(queryString)
.setMaxResults(MAX_DIRECTORY_RESULTS)
.setFields("users(name,primaryEmail,thumbnailPhotoUrl)")
.execute();
我添加了单引号来搜索带有空格的目录。以下是Google Directory API的摘录:
如果查询包含空格,则用单引号括起来。使用 \' 转义查询中的单引号,例如 'Valentine\'s Day'。
输入
- "johns" --> 返回所有名称为 Johnson 的用户 (
familyName: johns*
)好 - "van bur " --> 不返回任何用户 (
familyName: 'van bur*'
)不好 - "van Buren" --> 返回所有具有 Van Buren 名称的用户 (
familyName: 'van buren*'
)好
tl;博士
是否可以将搜索查询与带有通配符的空格结合起来?*
还是必须转义通配符 ( )?在案例 #2 中,我需要使用什么查询来成功返回用户列表?