2011-04-22 69 views
1

多個字段在我的應用程序,即時設計GAE,我想,我們應該說一個全方位的搜索欄。你可以一次搜索數據存儲的數據存儲區

據我瞭解數據存儲如何存儲記錄,它基本上是hashmaps的散列圖。所以我有一個鍵,然後看起來(爲簡單的概念)一個字符串,這將是一個JSON返回值。

在關係數據庫世界

,如果我想在同一時間進行搜索的姓氏和名字我就必須有這樣的事情

select * from user where user.firstname like 'bob' or user.lastname like 'bob' 

與數據存儲,我可以這樣做

select from user where user.anyfield like 'bob' 

它會搜索用戶實體的所有字段,自動返回user.firstname和/或user.lastname類似'bob'的任何記錄?

+0

App Engine既沒有「或」也沒有「like」。有兩種合適的解決方法 - http://stackoverflow.com/questions/930966/app-engine-datastore-does-not-support-operator-or/931193#931193,http://stackoverflow.com/q/47786/70492。 – hyperslug 2011-04-22 04:21:02

+0

@hyperslug您應該將其作爲答案發布。 @scphantm沒有什麼能夠阻止你在App Engine中對多個屬性進行過濾 - 受限於超級鏈接的提及。 – 2011-04-22 06:05:32

回答

2

App Engine不支持OR,但正如Nick建議here一樣,您可以通過查詢姓和名查詢並組合結果來完成相同操作。

您也不能直接進行LIKE比較,但可以執行「開頭」查詢,如圖所示here

0

有一個解決方案,正是你所需要的。它使用列表屬性和關係索引實體。

使用Objectify實現的示例可以在我的博客here中找到。要了解關於關係指數實體的更多信息,請參閱Google IO track