2012-04-16 46 views
2

我想了解如何正確使用目錄。決定何時應創建新目錄的規則是什麼?

我有大約30種有用的內容類型,catalog.xml中大約有50個索引,大約45個元數據。只有三種類型佔據了網站的大部分數據 - 我可能需要數以百萬計的這些數據。我一直在閱讀,而且還有很多事情要做,但是我想在開始之前就有基本的配置。

This page告訴我,任何非默認索引都不應該添加到portal_catalog中。我甚至讀過人們解釋如何刪除一個或兩個默認索引使性能出現差異。

我的問題是:將索引劃分爲不同的目錄以及選擇哪種類型的索引有哪些規則?

到目前爲止,我已經創建了一個額外的目錄,用於爲我的「網站設置」對象(我已經導致不再在portal_catalog中編入索引)對所有索引進行編目。站點設置索引經常被使用,但是比其他站點更少修改,所以我認爲將它們與經常重新索引的對象分開是正確的。我不確定這是否是主要考慮因素。

另一個類似的問題(我想解決的事情的一個很好的例子):你將如何處理像輔助工作流程review_state變量?我給每個工作流的review_state變量一個索引(並且經常搜索它們),但是我的一些工作流只用於幾種類型。 (我最多產的物體有輔助工作流程......)

我會非常感謝您的建議!

坎貝爾

回答

3

這不會面面俱到,但我會帶一些點..沒有在portal_catalog

任何不會與收藏工作,folder_contents觀點,getFolderContents方法,搜索,門戶集合,相關項目(我認爲)以及其他任何假定您使用的portal_catalog。

我希望在需要查詢數據時使用額外的目錄,但它隻影響內容對象的子集。

使用collective.indexing加快索引操作。

將目錄掛載到它們自己的掛載點上,這樣就可以將它們與網站的其他部分緩存到不同的位置(這樣可以緩存整個目錄)。然後,您甚至可以從專用zeoserver服務目錄。另外,如果您的內容不需要通過portal_catalog進行編目(列出所有約束條件),您甚至可以考慮是否需要將它作爲一個完整的(原型|靈巧性)類型第一個地方。無論您的目的是什麼,您都可以使用更細的repoze.catalog來編目任意對象(這可能是非常簡單的數據),並獲得更高的性能。或者更好的是,看看索爾索引它的非常好的表現。

關於更多的事情,根據您存儲的數據類型,您甚至可以使用關係數據庫查看數據存儲。但我不知道你有什麼樣的查詢,索引,數據等...

30種不同的類型看起來很多,但我不知道你的用例是什麼。小心分享?也許有更好的方法來做到這一點。

+0

我一直在研究[This](https://github.com/bikalabs/Bika-LIMS)。最多的對象類型是[分析](https://github.com/bikalabs/Bika-LIMS/blob/master/bika/lims/content/analysis.py),這在我看來非常重要。 ..你看到那裏有來自Plone 2(甚至更早)的代碼遺蹟。 – rockfruit 2012-04-17 07:50:36

相關問題