Sitecore 6 の一般的なアーキテクチャに関する質問...
「プレス リリース」テンプレートを実装する 10,000 個のアイテムがある状況があるとします。これらのアイテムは Sitecore の に保存され/sitecore/content/home/press/*
ます。ホームページでは、直近3件のプレスリリースに関する情報を掲載したいと思います。
SQL と同等のものを構築しようとしています。
SELECT TOP 3 * FROM PressReleases ORDER BY ReleaseDate
Sitecore クエリ ドキュメントを読むと、このクエリの大部分は C# アプリケーションで処理する必要があるようです。何かのようなもの:
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 アイテムをメモリにロードし、ホームページがヒットするたびにそれらをソートすることは、パフォーマンスの観点からは受け入れられないように思われます。
このクエリを表現するより効率的な方法はありますか? それとも、出力キャッシュや事前計算に集中する必要がありますか?