在 Google App Engine 中搜索现有用户

Search for existing Users in Google App Engine

我有一个 User 实体 class,如下所示:

@Entity
public class User {

    @Id
    private Long id;
    @Index
    private String username;
    private Long dateOfBirth;
    // More fields...
}

我想创建一个 API 方法来搜索数据存储区中所有 User 或多或少匹配搜索文本的实体和 return 可能结果列表。例如;

public CollectionResponse<User> searchForUser(@Named("text") searchText searchText) {
    // Some code here.
}

此 API 方法将用于 Android 应用程序,用户在该应用程序中一次输入一个字符的用户名。每次输入字符时,我都会使用 searchForUser() 方法 运行 以及他们目前输入的内容和 return 可能的建议列表。

如果您以前使用过这种方法,有人对如何开始使用有任何建议吗?谢谢。

根据您的用例,您总是会 return 一定数量的结果(例如 5)。因此,您可以 运行 一个标准查询,在用户名 属性 上使用不等式过滤器,并对结果数量设置限制 returned。确保在用户名上添加排序顺序。

例如,如果用户键入 "an",您将搜索用户名 >= "an" 的所有实体。

返回结果后,删除那些不是以用户输入开头的。例如,

andre - add to response

andrei - add to response

boris - do not add and stop - all subsequent entries won't match

现在您知道只有两个结果与用户输入匹配。