Sitecore 获取页面计数

Sitecore 获取页面计数,sitecore,sitecore6,sitecore-dms,Sitecore,Sitecore6,Sitecore Dms,我正在使用Sitecore 6.5开发一个网站 其中一个要求是在右角显示5个最受欢迎的页面 为此,我考虑使用分析报告用于页面计数的函数 我想知道是否可以使用Analytics APISitecore.Analytics 如果是这样的话,我可以用一些代码片段来做这件事,因为我完全迷路了。你可以看一看博客文章“”,这篇文章的目的是获取OMS(而不是DMS)浏览次数最多的页面。这至少可以为您提供一个起点,但您希望调整代码以匹配更新的API。您可以查看博客文章“”,该文章旨在获得OMS(而非DMS)的最

我正在使用Sitecore 6.5开发一个网站

其中一个要求是在右角显示5个最受欢迎的页面

为此,我考虑使用分析报告用于页面计数的函数

我想知道是否可以使用Analytics API
Sitecore.Analytics


如果是这样的话,我可以用一些代码片段来做这件事,因为我完全迷路了。

你可以看一看博客文章“”,这篇文章的目的是获取OMS(而不是DMS)浏览次数最多的页面。这至少可以为您提供一个起点,但您希望调整代码以匹配更新的API。

您可以查看博客文章“”,该文章旨在获得OMS(而非DMS)的最多浏览页面。这至少可以为您提供一个起点,但您需要调整代码以匹配更新的API。

以下是您在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);
}
private const string CommandText=“\r\n从{0}页{1}中选择\r\n计数(不同的{0}VisitId{1})\r\n其中{0}ItemId{1}={2}yourtitemid{3}”;
公共静态整型GetPageViews(ID pageId)
{
返回DataAdapterManager.Provider.Sql.ReadOne(CommandText,ReadPageViews,新对象[]{“YourItemId”,pageId.ToString()});
}
私有静态int-ReadPageViews(DataProviderReader)
{
返回DataAdapterManager.Provider.Sql.GetInt(0,读取器);
}

以下是在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);
}
private const string CommandText=“\r\n从{0}页{1}中选择\r\n计数(不同的{0}VisitId{1})\r\n其中{0}ItemId{1}={2}yourtitemid{3}”;
公共静态整型GetPageViews(ID pageId)
{
返回DataAdapterManager.Provider.Sql.ReadOne(CommandText,ReadPageViews,新对象[]{“YourItemId”,pageId.ToString()});
}
私有静态int-ReadPageViews(DataProviderReader)
{
返回DataAdapterManager.Provider.Sql.GetInt(0,读取器);
}

我知道这已经得到了回答,但为什么不直接使用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;
    }
公共静态字典GetVisitCountForItem(项)
{
Sitecore.Analytics.Data.DataAccess.DataSets.VisitorDataSet.PagesDataable PagesDataable=新建VisitorDataSet.PagesDataable();
var pageViews=pagesdataable.Select(p=>p.ItemId==item.ID.Guid);
var dic=新字典();
添加(item,pageViews.Count());
返回dic;
}

我知道这已经得到了回答,但为什么不直接使用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;
    }
公共静态字典GetVisitCountForItem(项)
{
Sitecore.Analytics.Data.DataAccess.DataSets.VisitorDataSet.PagesDataable PagesDataable=新建VisitorDataSet.PagesDataable();
var pageViews=pagesdataable.Select(p=>p.ItemId==item.ID.Guid);
var dic=新字典();
添加(item,pageViews.Count());
返回dic;
}

是。这是一个很棒的主题,但在6.5中,我在分析数据库中找不到会话表。是的。这是一个很棒的主题,但在6.5中,我在分析数据库中找不到会话表..谢谢你的代码。。它用于获取当前页面计数。我可以有一个参考,因为我需要将代码更改为“获取所有计数从高到低的项目”。谢谢代码。。它用于获取当前页面计数。我可以有一个参考,因为我需要将该代码更改为获取所有计数从高到低的项目。