我正在開發一個使用Sitecore的網站6.5獲取頁數
其中一個要求是在右上角顯示5個最熱門的頁面。
爲此,我想使用Analytic報表用於頁數的功能。
我想知道是否有可能通過使用分析API Sitecore.Analytics
如果是這樣的話,我可以有一些代碼片段來做到這一點,因爲我完全失去了。
我正在開發一個使用Sitecore的網站6.5獲取頁數
其中一個要求是在右上角顯示5個最熱門的頁面。
爲此,我想使用Analytic報表用於頁數的功能。
我想知道是否有可能通過使用分析API Sitecore.Analytics
如果是這樣的話,我可以有一些代碼片段來做到這一點,因爲我完全失去了。
這裏是你如何在DMS做到這一點:
private const string CommandText = "\r\nSELECT \r\ncount(distinct {0}VisitId{1})\r\n FROM {0}Pages{1}\r\n WHERE {0}ItemId{1} = {2}YourItemId{3}";
public static int GetPageViews(ID pageId)
{
return DataAdapterManager.Provider.Sql.ReadOne<int>(CommandText, ReadPageViews, new object[] { "YourItemId", pageId.ToString() });
}
private static int ReadPageViews(DataProviderReader reader)
{
return DataAdapterManager.Provider.Sql.GetInt(0, reader);
}
你可以看看博客文章「Sitecore OMS data querying – Most viewed pages」被寫入到獲得OMS的最常瀏覽的網頁(不 DMS)。這至少可以爲您提供一個起點,但您希望調整代碼以匹配更新後的API。
是的。這是一個很棒的話題,但是在6.5中,我無法在分析數據庫中找到會話表。 – william 2012-04-27 05:59:54
我知道這已經回答了,但爲什麼不直接使用PageDataTable查詢?我做了這樣的事情:
public static Dictionary<Item, int> GetVisitsCountForItem(Item item)
{
Sitecore.Analytics.Data.DataAccess.DataSets.VisitorDataSet.PagesDataTable pagesDataTable = new VisitorDataSet.PagesDataTable();
var pageViews = pagesDataTable.Select(p => p.ItemId == item.ID.Guid);
var dic = new Dictionary<Item, int>();
dic.Add(item, pageViews.Count());
return dic;
}
+1用於非SQL API方法 – 2013-07-16 18:01:07
感謝您的代碼..它可以獲取當前頁面數量。我可以有一個參考,因爲我需要將該代碼更改爲獲取所有項目的數量越來越低。 – william 2012-04-27 06:00:55