2012-03-20 80 views
0

我有一個對象具有字段firstName,lastName等的人員 找到可用人員列表後。我需要找到其firstName包含子字符串「ho」的人。我怎樣才能做到這一點?如何獲取對象列表,其中每個對象包含字符串「ho」

我會用LIKE與通配符,但我的應用程序託管在谷歌應用程序引擎,所以我不能在SQL查詢中使用LIKE。之前嘗試過,沒有奏效。任何建議如何我可以做到這一點,而不需要遍歷列表中的每個對象?

+0

的可能重複[谷歌應用程序引擎:是否有可能做一個GQL LIKE查詢](http://stackoverflow.com/questions/47786/google-app-engine-is-it-可能對-DO-A-GQL樣查詢) – Amber 2012-03-20 07:56:03

回答

0

至少,如果您使用的是基於BigTable的數據存儲區,則不行。

1

您真的需要以與關係數據庫不同的方式來考慮數據存儲。從本質上來說,這意味着你必須聰明地掌握你如何存儲你的數據。如果沒有全文搜索,您可以使用策略模仿全文搜索,方法是創建可搜索單詞的關鍵列表並將它們存儲在實體組的子實體中。然後,您可以構建查詢以返回與「查詢字符串」匹配的父對象的鍵。這使您可以在沒有全文搜索開銷的情況下編制索引。

下面是使用Objectify的一個很好的例子,但您可以使用任何東西來完成相同的事情(JPA,JDO,低級API)。

http://novyden.blogspot.com/2011/02/efficient-keyword-search-with-relation.html

相關問題