Une architecture générale de Sitecore dans Sitecore 6 ...question « Dernière » Item
Disons que nous avons une situation où nous avons 10.000 articles de mise en œuvre d'un modèle « Communiqué de presse ». Ces articles sont stockés dans Sitecore au /sitecore/content/home/press/*
. Sur notre page d'accueil, nous aimerions afficher quelques informations concernant les 3 communiqués de presse les plus récents.
Nous cherchons à construire quelque chose d'équivalent à celui SQL:
SELECT TOP 3 * FROM PressReleases ORDER BY ReleaseDate
La lecture de la documentation de requête Sitecore, il semble que la majorité de cette requête doit être traitée dans notre application C#. Quelque chose comme:
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();
}
Il semblerait que le chargement de 10.000 articles Sitecore de la base de données en mémoire, puis les trier chaque fois que notre page d'accueil est touché serait inacceptable du point de vue de la performance.
Existe-t-il un moyen plus efficace d'exprimer cette requête? Ou devrais-je me concentrer sur la mise en cache de sortie et/ou le pré-calcul?
Veuillez mettre à jour ces liens. –
@Alexy: votre lien est cassé. –