2009/03/07

Catalog to Speed Up Plone

在 Plone 資料夾裡呼叫所有的內容項目,會讓系統效能大受影響,非必得已,應降低這類的動作。早期 Plone 的導引清單因為設計還不成熟,成為效能殺手的主因之一,但隨著 Plone 2.1 和 ExtendedPathIndex 的問世,情況已大幅改善。

查詢目錄內容項目清單的方法有好幾種,但 objectValues() 和 contentValues() 則是最耗資源的兩種,應優先考慮改用 catalog 工具,範例如下:
 catalog = getToolByName(self, 'portal_catalog')
results = catalog.searchResults(
path = {'query' : '/'.join(self.getPhysicalPath()),
'depth' : 1 },
sort_on = 'getObjPositionInParent',
)
更多資訊可參考 http://plone.org/documentation/tutorial/richdocument/folder-listings

No comments: