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 项目从数据库加载到内存中,然后对它们进行排序似乎是不可接受的。
有没有更有效的方式来表达这个查询?或者我应该专注于输出缓存和/或预计算?