有没有办法用类似于SQL LIKE语句的过滤器查询GAE数据存储区?例如,如果一个类有一个字符串字段,并且我想查找该字符串中具有某个特定关键字的所有类,我该怎么做? 看起来JDOQL的匹配()不起作用......我错过了什么?
欢迎任何评论,链接或代码片段
答案 0 :(得分:2)
正如GAE / J文档所说,BigTable没有这样的原生支持。您可以将JDOQL String.matches用于“something%”(即startsWith)。这就是全部。否则在内存中评估它。
答案 1 :(得分:1)
如果要检查的项目很多,则要避免加载它们。最好的方法可能是将输入分解为写入时间。如果你只是用整个单词搜索那么这很容易
例如,“Hello world”变为“Hello”,“world” - 只需将两者都添加到多值属性中。如果你有很多文本,你想避免加载多值属性,因为你只需要它来进行索引查找。您可以通过创建“关系索引实体”来执行此操作 - 有关详细信息,请参阅bret slatkins Google IO talk。
您可能还想将输入分解为3个字符,4个字符等字符串或者干掉单词 - 也许是使用lucene stemmer。