3 回答

TA貢獻1998條經(jīng)驗 獲得超6個贊
BigTable是App Engine的數(shù)據(jù)庫后端,它將擴展到數(shù)百萬條記錄。因此,App Engine不允許您執(zhí)行任何會導致表格掃描的查詢,因為對于填充良好的表格而言,性能可能會令人恐懼。
換句話說,每個查詢都必須使用索引。這就是為什么你只能做=,>和<查詢。(實際上,您也可以執(zhí)行!=此操作,但是API會使用>和<查詢的組合來執(zhí)行此操作。)這也是開發(fā)環(huán)境監(jiān)視您執(zhí)行的所有查詢并自動將丟失的索引添加到index.yaml文件中的原因。
無法為LIKE查詢建立索引,因此根本無法使用。
觀看此Google IO會話,以獲取更好,更詳細的解釋。

TA貢獻1777條經(jīng)驗 獲得超3個贊
您需要使用搜索服務來執(zhí)行類似于SQL的全文搜索查詢LIKE。
Gaelyk提供了特定于域的語言來執(zhí)行更加用戶友好的搜索查詢。例如,下面的代碼片段將查找前十本書,這些書是從最新的書中排序的,書名包含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)。
添加回答
舉報