我有一个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()
方法运行它们到目前为止输入的内容并返回可能的建议列表。
如果你以前做过这个方法,有没有人对如何开始这个方法有任何建议?感谢。
答案 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
现在您知道只有两个结果与用户输入匹配。