2011-01-26 49 views
3

谷歌應用引擎python sdk提供了一個Expando類型對象,可用於向可以保存到數據存儲的對象添加動態屬性。Google應用引擎中用於python的expando屬性的自動索引

應用程序引擎還要求對於需要搜索或排序對象的任何屬性,必須在將應用程序上傳到Google服務器之前創建索引。這真的很奇怪,因爲這意味着我應該事先知道用戶將在我的對象上創建的屬性。如果我事先知道,爲什麼我不將它們定義爲現有模型中的靜態屬性?

有誰知道如何自動創建索引動態屬性的Expando模型上傳到應用程序引擎?如果沒有,任何人都可以告訴我,爲什麼gae會將Expando視爲動態構造,因爲它無法讓您創建可搜索或排序的新屬性,只有不能搜索或排序的屬性。

回答

4

所有屬性都自動爲簡單查詢編制索引。簡單的查詢,在這種情況下,是那些既:

  1. 只使用等式過濾器,沒有排序順序或不等式過濾器。
  2. 在單個字段上有不等式過濾器或排序順序,沒有其他過濾器。

如果您想要執行更復雜的查詢 - 比如混合不等式和平等過濾器的查詢,那麼您需要構建自定義索引。

在運行時無法構建自定義索引。如果您要使用expandos,則需要確保將執行的查詢限制爲在上述情況之一下可滿足的查詢。

+0

如何使用SDK實現來部署自定義索引?這不是最好的方式,但看起來可能。是這樣推薦的嗎? http://rahulswackyworld.blogspot.in/2010/03/dynamic-indexes-with-google-app-engine.html – anups 2014-10-16 03:07:46

相關問題