2008-10-18 11 views
8

एक सामान्य वास्तुकला Sitecore 6 में सवाल ...Sitecore के "नवीनतम" आइटम

मान लीजिए कि हम एक ऐसी स्थिति है जहां हम एक "प्रेस विज्ञप्ति" टेम्पलेट को लागू करने के लिए 10,000 आइटम नहीं हैं करते हैं। ये आइटम साइटकोर में /sitecore/content/home/press/* पर संग्रहीत हैं। हमारे मुखपृष्ठ पर, हम 3 सबसे हालिया प्रेस विज्ञप्ति से संबंधित कुछ जानकारी प्रदर्शित करना चाहते हैं।

हम कुछ एसक्यूएल के लिए बराबर के निर्माण के लिए देख रहे हैं:

SELECT TOP 3 * FROM PressReleases ORDER BY ReleaseDate 

Sitecore क्वेरी प्रलेखन के माध्यम से पढ़ना, यह लग रहा है कि इस प्रश्न के बहुमत की तरह हमारे सी # आवेदन में नियंत्रित किया जाना चाहिए। कुछ की तरह:

public Item[] GetRecentPressReleases() 
{ 
    string query = "/sitecore/content/home/press/*"; 
    Item[] items = Sitecore.Context.Database.SelectItems(query); 
    Array.Sort(items, new PressReleaseDateComparer()); 
    return items.Take(3).ToArray(); 
} 

यह स्मृति में डेटाबेस से कि लोड हो रहा है 10,000 Sitecore आइटम प्रतीत होता है और फिर उन्हें हर बार अपने मुखपृष्ठ एक प्रदर्शन के नजरिए से स्वीकार्य नहीं होगा मारा जाता है छँटाई।

क्या इस प्रश्न को व्यक्त करने के लिए कोई और अधिक प्रभावी तरीका है? या मुझे आउटपुट कैशिंग और/या प्री-गणना पर ध्यान केंद्रित करना चाहिए?

उत्तर

6

साइटकोर क्वेरी (या एक तेज क्वेरी) सॉर्टिंग या टॉप संरचनाओं का समर्थन नहीं करती है, इसलिए इन चीजों को कोड में व्यक्त किया जाना चाहिए।

कैशिंग पर ध्यान केंद्रित करना एक अच्छी बात है। मानक साइटकोर प्रतिपादन कैशिंग का उपयोग करना एक सबसे आसान तरीका है, मुझे नहीं लगता कि आपको इस मामले में उससे कहीं अधिक जटिल की आवश्यकता है।

यह समझना महत्वपूर्ण है कि Sitecore query can be resolved either at the SQL or API levels, जो प्रदर्शन को प्रभावित करता है और कभी कभी अपने लाभ के लिए इस्तेमाल किया जा सकता मदद करता है।

Fast query Sitecore 6 में बनाया गया और सभी प्रश्नों एसक्यूएल स्तर पर निष्पादित, नाटकीय रूप से प्रदर्शन में वृद्धि बनाता है। यह इस समय सॉर्टिंग और टॉप का भी समर्थन नहीं करता है, लेकिन हम इस बात पर विचार कर रहे हैं कि इसे कैसे जोड़ा जा सकता है।

+0

कृपया इन लिंक को अपडेट करें। –

+0

@Alexy: आपका लिंक टूटा हुआ है। –

2

"10 नवीनतम समाचार" समस्या का एक समाधान लुसीन का उपयोग करना है।

यह one way of doing है।

+0

निश्चित रूप से ल्यूसीन अनुक्रमण के लिए एक नौकरी। –

संबंधित मुद्दे