setFilter()带有字符串通配符?

时间:2010-07-22 18:32:47

标签: java google-app-engine google-cloud-datastore

我看到在GAE google群组(this thread)上进行部分字符串搜索的示例:

String term1 = "cow";
String term2 = "horse";

Query q;
q.setFilter("name.matches('" + term1 + "%')");

所以这就像:

  

“查找属性'name'以term1”

开头的类的所有对象

这样可以匹配以下内容:

cowfoo
cowgrok
cowetc

正确?然后我可以用term2替换term1,并找到所有以'horse'开头的实例。有没有一个文件可以解释这个?我只是想在我决定如何为我的数据模型存储一些字符串之前检查它是如何工作的,

由于

1 个答案:

答案 0 :(得分:0)

我找不到提供您提供的前缀匹配语法的文档,但您的逻辑是合理的。看起来基于您引用的Google群组邮件支持语法。

对于Python运行时,我将使用不等式过滤器执行前缀匹配。您也可以像这样在Java运行时执行此操作(这可能是%语法的实现方式):

// prefix is some string object
q.setFilter("my_string_field >= :1 && my_string_field < :2");
q.execute(prefix, (prefix + "\ufffd"));