我看到一个在 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/