Frage

Eine allgemeine Architektur Frage in Sitecore 6 ...

Nehmen wir an, wir haben eine Situation, wo wir 10.000 Stück haben eine „Pressemitteilung“ Vorlage implementieren. Diese Elemente werden in Sitecores bei /sitecore/content/home/press/* gespeichert. Auf unserer Homepage möchten wir einige Informationen angezeigt werden über die 3 neuesten Pressemitteilungen möchten.

Wir suchen etwas Gleichwertiges zu SQL ist zu erstellen:

SELECT TOP 3 * FROM PressReleases ORDER BY ReleaseDate

Beim Lesen der Sitecore Abfrage Dokumentation, es klingt wie die Mehrheit dieser Abfrage in unserer C # .NET-Anwendung behandelt werden muß. So etwas wie:

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();
}

Es wäre, dass die Belastung 10.000 Sitecores Elemente aus der Datenbank in den Speicher scheint und sie dann jedes Mal auf unserer Homepage aus Sicht der Leistung nicht akzeptabel wäre getroffen zu sortieren.

Gibt es eine effizientere Möglichkeit, diese Abfrage auszudrücken? Oder soll ich auf der Ausgabezwischenspeicherung und / oder Pre-Rechen fokussiert werden?

War es hilfreich?

Lösung

Sitecore Abfrage (oder eine schnelle Abfrage) nicht unterstützt Sortieren oder TOP-Konstrukte, so haben diese Dinge in Code ausgedrückt werden.

auf Caching Focusing ist eine gute Sache. Unter Verwendung von Standardsitecore-Rendering-Caching einen einfachste Ansatz ist, ich glaube nicht, dass Sie etwas brauchen komplexer als die in diesem Fall.

Es hilft zu verstehen, dass Sitecore Abfrage entweder aufgelöst werden kann an den SQL oder API-Ebenen , der die Performance nicht beeinträchtigt und kann manchmal zu Ihrem Vorteil verwendet werden.

Schnell Abfrage in Sitecores gebaut 6 und macht alle Abfragen auf SQL-Ebene ausführen maßgeblich die Leistung zu erhöhen. Es ist auch nicht unterstützt zur Zeit Sortier- und TOP, aber wir überlegen, wie diese hinzugefügt werden können.

Andere Tipps

Eine Lösung für das "10 neueste Nachrichten" Problem ist Lucene zu verwenden.

Dies ist eine Möglichkeit , es zu tun .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top