1

有没有办法使用类似于 SQL LIKE 语句的过滤器查询 GAE 数据存储?例如,如果一个类有一个字符串字段,并且我想在该字符串中查找所有具有特定关键字的类,我该怎么做?看起来 JDOQL 的 match() 不起作用......我错过了什么吗?

欢迎任何评论、链接或代码片段

4

2 回答 2

2

正如 GAE/J 文档所说,BigTable 没有这样的原生支持。您可以将 JDOQL String.matches 用于“something%”(即startsWith)。这就是全部。否则在内存中评估它。

于 2010-02-26T11:06:44.403 回答
1

如果您有很多项目要检查,您希望完全避免加载它们。最好的方法可能是在写入时间分解输入。如果您只搜索整个单词,那很容易

例如,“Hello world”变为“Hello”、“world”——只需将两者添加到多值属性中即可。如果您有很多文本,您希望避免加载多值属性,因为您只需要它来进行索引查找。您可以通过创建“关系索引实体”来做到这一点 - 有关详细信息,请参阅 bret slatkins Google IO talk。

您可能还想将输入分解为 3 个字符、4 个字符等字符串或词干 - 也许使用 lucene 词干分析器。

于 2010-03-01T20:36:46.927 回答