3 回答
![?](http://img1.sycdn.imooc.com/54585050000156a302200220-100-100.jpg)
TA贡献1998条经验 获得超6个赞
BigTable是App Engine的数据库后端,它将扩展到数百万条记录。因此,App Engine不允许您执行任何会导致表格扫描的查询,因为对于填充良好的表格而言,性能可能会令人恐惧。
换句话说,每个查询都必须使用索引。这就是为什么你只能做=,>和<查询。(实际上,您也可以执行!=此操作,但是API会使用>和<查询的组合来执行此操作。)这也是开发环境监视您执行的所有查询并自动将丢失的索引添加到index.yaml文件中的原因。
无法为LIKE查询建立索引,因此根本无法使用。
观看此Google IO会话,以获取更好,更详细的解释。
![?](http://img1.sycdn.imooc.com/5458463b0001358f02200220-100-100.jpg)
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)。
- 3 回答
- 0 关注
- 586 浏览
添加回答
举报