为了账号安全,请及时绑定邮箱和手机立即绑定

Google App Engine:是否可以执行Gql LIKE查询?

Google App Engine:是否可以执行Gql LIKE查询?

蛊毒传说 2019-10-06 13:47:25
真的很简单。在SQL中,如果我想在文本字段中搜索几个字符,则可以执行以下操作:SELECT blah FROM blah WHERE blah LIKE '%text%'App Engine的文档没有提及如何实现这一目标,但是可以肯定这是一个足够普遍的问题?
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

BigTable是App Engine的数据库后端,它将扩展到数百万条记录。因此,App Engine不允许您执行任何会导致表格扫描的查询,因为对于填充良好的表格而言,性能可能会令人恐惧。


换句话说,每个查询都必须使用索引。这就是为什么你只能做=,>和<查询。(实际上,您也可以执行!=此操作,但是API会使用>和<查询的组合来执行此操作。)这也是开发环境监视您执行的所有查询并自动将丢失的索引添加到index.yaml文件中的原因。


无法为LIKE查询建立索引,因此根本无法使用。


观看此Google IO会话,以获取更好,更详细的解释。


查看完整回答
反对 回复 2019-10-06
?
慕森王

TA贡献1777条经验 获得超3个赞

您需要使用搜索服务来执行类似于SQL的全文搜索查询LIKE。


Gaelyk提供了特定于域的语言来执行更加用户友好的搜索查询。例如,下面的代码片段将查找前十本书,这些书是从最新的书中排序的,书名包含fern 且类型完全匹配thriller:


def documents = search.search {

    select all from books

    sort desc by published, SearchApiLimits.MINIMUM_DATE_VALUE

    where title =~ 'fern'

    and genre =  'thriller'

    limit 10

}

Like编写为Groovy的match运算符=~。它还支持诸如此类的功能distance(geopoint(lat, lon), location)。


查看完整回答
反对 回复 2019-10-06
  • 3 回答
  • 0 关注
  • 586 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信