java - 带有字符串通配符的 setFilter()?

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

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

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

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

所以这就像:

"Find all objects of the class where property 'name' starts with term1"

所以这会匹配像这样的东西:

cowfoo
cowgrok
cowetc

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

谢谢

最佳答案

我找不到提供您提供的前缀匹配语法的文档,但您的逻辑是合理的。根据您引用的谷歌群组消息,看起来语法是受支持的。

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

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

关于java - 带有字符串通配符的 setFilter()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3312159/

相关文章:

python - 用于谷歌云数据存储的 ORM

java - 类和对象的概念

java - GAE 联合登录和 Linkedin

java - 选择其他 JComboBox 值时清除 JList

python - GQL 内部交易

google-app-engine - 如何使用自定义域强制执行到 Google App Engine 的 HTTPS 流量?

google-app-engine - 访问 GAE 数据存储 : Use JDO, JPA 或低级 API?

python - NDB查询以字符串开头的结果

java - 尝试在空对象引用上调用虚拟方法 - Fragment Android

java - GWT 2.1 : ResettableEventBus doesn't reset?