2

在尝试将目录服务 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'。

输入

  1. "johns" --> 返回所有名称为 Johnson 的用户 ( familyName: johns*)
  2. "van bur " --> 不返回任何用户 ( familyName: 'van bur*')不好
  3. "van Buren" --> 返回所有具有 Van Buren 名称的用户 ( familyName: 'van buren*')

tl;博士

是否可以将搜索查询与带有通配符的空格结合起来?*还是必须转义通配符 ( )?在案例 #2 中,我需要使用什么查询来成功返回用户列表?

4

1 回答 1

1

在我尝试使用文档中嵌入的 API 资源管理器期间,我注意到以下查询(与您没有单引号的情况相同)将在我的测试域上按预期工作。你能测试一下吗?

familyName:van bur
于 2014-08-25T07:26:54.630 回答