使用objectify在实体中搜索子字符串

Sha*_*ein 10 google-app-engine objectify

我有一个名为lastName的实体,其值为"Benjamin".如果用户放"Ben"或"jam"或"Benja",是否有一种客观化的方式.我仍然可以使用query.filter()找到这个实体.我必须使用查询,因为我检查有其他搜索条件.

我在"Obgaektify"中看到一些名为"start with"运算符的东西.但它没有用.任何建议,将不胜感激.谢谢

Chr*_*loe 12

对于子字符串没有"LIKE"类型查询,但是可以通过利用索引上的和运算符来模拟区分大小写的 "以...开头" .><

// The start string
String searchStr = "Ben";

// emulate a "starts with" query
Query q = new Query("MyEntity")
q.addFilter("name", Query.FilterOperator.GREATER_THAN_OR_EQUAL, searchStr);
q.addFilter("name", Query.FilterOperator.LESS_THAN, searchStr + "\ufffd");
Run Code Online (Sandbox Code Playgroud)

查询将"搜索" name属性以查找以"Ben"开头的项目,并且小于"Ben\ufffd",其中\ufffd是最高可能的unicode字符.