2012-11-05 27 views
0

我想在Google App Engine中使用我的數據庫模型的屬性,但我不確定哪個類別的作用最好。我需要它成爲類似於SO上的標籤的標籤雲。文本屬性是最好的,還是應該使用字符串屬性並使其重複= True。哪個GAE數據庫屬性適合標籤屬性?

第二個似乎最好的給我,然後我就可以劃分標記了一個逗號作爲分隔符。我的目標是能夠搜索這些標籤並計算每種標籤的總數。

這個問題似乎是一個合理的解決方案嗎?

+0

看一看Python的搜索API,以瞭解如何創建可搜索的文件:https://developers.google.com/appengine/docs/python/search/ – voscausa

回答

1

這可能是感興趣的,這取決於你想要做什麼。

GAE Sharding Counters

在開發上谷歌應用程序引擎的高效應用程序,需要注意的一個實體的更新頻率。儘管App Engine的數據存儲擴展以支持大量實體,但重要的是要注意,您只能期望每秒鐘更新任何單個實體或實體組。這是一個估計值,實體的實際更新率取決於實體的幾個屬性,包括它有多少屬性,它有多大以及需要更新多少個索引。雖然單個實體或實體組對其更新速度有限制,但App Engine擅長處理分佈在不同實體之間的許多並行請求,我們可以通過使用分片來利用此優勢。

的問題是,如果你有,你想更新 比第二五倍快的實體?例如,您可以統計投票中的 票數,評論數量,甚至您網站訪問者的數量 。

所以,你會創建這樣一個標籤:

increment(tag) 

這也恰好創造它,如果它不存在。

要計算

get_count(tag) 

但是,是的,你可以做一個重複的屬性,它是一個列表本質和存儲,並加載它和它算值。這取決於您將擁有多少數據存儲,因爲數據存儲對模型大小有限制,並且如果將其存儲在單個模型中的單個列表中,它最終會過大。

每個標籤所以,或許一個模型中,所有單一類型的?而當你遇到5秒/秒的問題時,上述就會派上用場。

+0

感謝您的信息。我應該只有5個左右的標籤,每個型號,然後成千上萬的模型,但是沒有模型的數量限制,所以不應該是一個問題 – clifgray

1

重複的字符串屬性是您的最佳選擇。

+0

爲什麼這是最好的選擇? – dove

+0

因爲他試圖存儲一個標籤列表 - 這是文本字符串。 –