문제

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 항목을 메모리에로드 한 다음 홈페이지가 맞을 때마다 정렬하는 것은 성능 관점에서 용납 할 수없는 것 같습니다.

이 쿼리를 표현하는보다 효율적인 방법이 있습니까? 아니면 출력 캐싱 및/또는 사전 계산에 중점을 두어야합니까?

도움이 되었습니까?

해결책

SiteCore 쿼리 (또는 빠른 쿼리)는 정렬 또는 상단 구조물을 지원하지 않으므로 이러한 것들은 코드로 표현되어야합니다.

캐싱에 집중하는 것은 좋은 일입니다. 표준 Sitecore 렌더링 캐싱을 사용하는 것이 가장 간단한 접근법 이므로이 경우 그보다 더 복잡한 것이 필요하지 않다고 생각합니다.

그것을 이해하는 데 도움이됩니다 SiteCore 쿼리는 SQL 또는 API 레벨에서 해결할 수 있습니다., 성능에 영향을 미치고 때로는 유리하게 사용될 수 있습니다.

빠른 쿼리 Sitecore 6에 내장되어 있으며 모든 쿼리가 SQL 레벨에서 실행되도록하여 성능이 크게 높아집니다. 또한 현재 정렬 및 상단을 지원하지는 않지만이를 추가 할 수있는 방법을 고려하고 있습니다.

다른 팁

"10 최신 뉴스"문제에 대한 한 가지 해결책은 Lucene을 사용하는 것입니다.

이것은 한 가지 방법 그것.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top