在Google App Engine中搜索现有用户

时间:2016-03-03 17:58:02

标签: google-app-engine google-cloud-endpoints google-cloud-datastore objectify

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

@Entity
public class User {

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

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

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

此API方法将用于Android应用,其中用户一次输入一个字符的用户名。每次键入一个字符时,我都会使用searchForUser()方法运行它们到目前为止输入的内容并返回可能的建议列表。

如果你以前做过这个方法,有没有人对如何开始这个方法有任何建议?感谢。

1 个答案:

答案 0 :(得分:2)

根据您的使用案例,您将始终返回一定数量的结果(例如5)。因此,您可以在username属性上运行带有不等式过滤器的标准查询,并对返回的结果数设置限制。确保在用户名上添加排序顺序。

例如,如果用户输入&#34;&#34;,您将搜索所有使用用户名&gt; =&#34;&#34;的实体。

当您获得结果时,请删除那些不以用户输入开头的结果。例如,

andre - add to response

andrei - add to response

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

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