谷歌应用引擎:是否可以执行Gql LIKE查询?

125

很简单。在SQL中,如果我想要搜索文本字段中的一些字符,可以这样做:

SELECT blah FROM blah WHERE blah LIKE '%text%'

App Engine的文档中没有提到如何解决这个问题,但是这肯定是一个相当普遍的问题吧?


3
持续存在的问题是人们试图将GAE Datastore当作一个关系/SQL数据库来使用。谷歌推出GQL进一步让人们以SQL系统的方式思考。但我理解谷歌正尝试让每个人的转变更容易,尽管我不确定这是否是正确的方法。 - fuentesjr
12个回答

0

如果LIKE '%text%'总是与一个单词或几个单词(考虑排列组合)进行比较,并且您的数据变化缓慢(缓慢意味着创建和更新索引不会过于昂贵 - 无论是价格还是性能方面),那么关系索引实体(RIE)可能是答案。

是的,您将不得不构建额外的数据存储实体并适当地填充它。是的,有一些限制需要您进行调整(其中之一是GAE数据存储中列表属性长度的5000限制)。但是,搜索结果非常快速。

有关详细信息,请参见我的使用Java和Ojbectify的RIE使用Python的RIE帖子。


0
"

“Like”通常被用作文本搜索的替代品。对于文本搜索,可以使用Whoosh-AppEngine

"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接