2008-10-18 24 views
8

Câu hỏi chung về kiến ​​trúc trong Sitecore 6 ...Mục "Mới nhất" của Sitecore

Giả sử chúng tôi có 10.000 mục thực hiện mẫu “Thông cáo báo chí”. Các mục này được lưu trữ trong Sitecore tại /sitecore/content/home/press/*. Trên trang chủ của chúng tôi, chúng tôi muốn hiển thị một số thông tin liên quan đến 3 thông cáo báo chí gần đây nhất.

Chúng tôi đang tìm kiếm để xây dựng một cái gì đó tương đương với SQL của:

SELECT TOP 3 * FROM PressReleases ORDER BY ReleaseDate 

Đọc qua các tài liệu truy vấn Sitecore, có vẻ như phần lớn các truy vấn này phải được xử lý trong C# ứng dụng của chúng tôi. Một cái gì đó như:

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

Dường như tải 10.000 mục Sitecore từ cơ sở dữ liệu vào bộ nhớ và sau đó sắp xếp chúng mỗi khi trang chủ của chúng tôi bị tấn công sẽ không thể chấp nhận được từ góc độ hiệu suất.

Có cách nào hiệu quả hơn để thể hiện truy vấn này không? Hoặc tôi nên tập trung vào bộ nhớ đệm đầu ra và/hoặc tính toán trước?

Trả lời

6

Truy vấn Sitecore (hoặc truy vấn nhanh) không hỗ trợ sắp xếp hoặc cấu trúc TOP, vì vậy những điều này phải được thể hiện bằng mã.

Tập trung vào bộ nhớ đệm là một điều tốt. Sử dụng tiêu chuẩn Sitecore rendering caching là một cách tiếp cận đơn giản nhất, tôi không nghĩ rằng bạn cần bất cứ điều gì phức tạp hơn trong trường hợp này.

Điều này giúp hiểu rằng Sitecore query can be resolved either at the SQL or API levels, điều này ảnh hưởng đến hiệu suất và đôi khi có thể được sử dụng cho lợi thế của bạn.

Fast query được tích hợp vào Sitecore 6 và làm cho tất cả các truy vấn thực thi ở cấp SQL, làm tăng đáng kể hiệu suất. Nó cũng không hỗ trợ sắp xếp và TOP vào lúc này, nhưng chúng tôi đang xem xét làm thế nào điều này có thể được thêm vào.

+0

Vui lòng cập nhật các liên kết này. –

+0

@Alexy: liên kết của bạn bị hỏng. –

2

Một giải pháp cho vấn đề "10 tin tức mới nhất" là sử dụng Lucene.

Đây là one way of doing.

+0

Chắc chắn là một công việc để lập chỉ mục Lucene. –

Các vấn đề liên quan