在Plone中计算页面视图的最佳方法

时间:2011-10-11 21:08:40

标签: logging plone zope web-analytics

我正在处理一个案例,需要使用复杂的页面浏览量。

每个内容对象都有页面视图,这应该很容易访问,以便我们可以做与之相关的各种事情(按照目录结果,显示,计算流行的metter ...)。最接近的等效项是youtube视频的视图。

我正在考虑实现这个的一些可行方法:

  1. 使用注释存储& indexer创建portal_catalog索引&元数据。

  2. 仅使用索引器(使用volatile属性或基于先前索引更新索引),这样我们就不必两次编写频繁更改的数据。页面视图仅存储在对象脑中。

  3. 使用关系数据库。那么我们如何才能使用portal_catalog?

  4. 在Plone之前使用包装层进行分析并通过某些API获取所需数据。这种简洁的灵活性,但有助于减少Plone方面的大量工作(写事件订阅者,检查会话,cookie ...),性能应该更好?

  5. 您的想法/经验?

6 个答案:

答案 0 :(得分:3)

我们已将外部日志分析器用于客户端项目(大型专用Intranet)。架构:

  • 一个js库添加了一个'web bug',一个带有额外查询参数的空gif,从专用的nginx服务器加载。
  • 日志处理器获取nginx日志,旋转它们,并将这些行解析为数据库,将访问与其他元数据一起计算。数据库中的条目包括内容的UID,以及其他有趣的角度。
  • 该网站具有对同一数据库的只读访问权限,以进行统计信息查询。

页面计数很简单,只需在数据库中查询正确的UID即可。排名表并不难;查询统计信息,然后使用UID将目录数据附加到结果集。

我们现在面临的最大问题是缺乏数据仓库技术(将数据库中的各个访问行转换为高效聚合),我们正在考虑重新设置此设置以使用Piwik作为统计引擎代替。

我们不能在这种特殊情况下使用Google Analytics,但如果您没有这样的限制,我当然会建议您查看collective.googleanalytics并查看是否可以使其适合您的使用案例。

答案 1 :(得分:2)

您是否已经看过这款产品? : http://plone.org/products/collective.googleanalytics/

它似乎符合您的需求,或者至少它可以成为您自定义的良好基础。

答案 2 :(得分:2)

对每个访问进行写入是ZODB的最坏情况。关系数据库通常都非常擅长这种事情,我先看看它。

需要对数据进行排序吗?只需添加一些实用程序或内容类型方法即可查询数据库。当您需要查找时,请执行目录搜索,然后使用db-connecting方法注释要排序的数据。

答案 3 :(得分:1)

我们很久以前就做过这个(plone2.5)。客户想要这个!一旦完成,它终于不是真正的需要。这是首选的文章,它不等于观看次数最多...所以内容评级就是那个。

首先与您的客户进行验证。

接下来,实现您需求的最佳方式是安装分析工具,googleanalytics或其他任何东西,但使用API​​来询问查看次数最多的页面。如果您需要在portal_catalog中进行此操作,则可以在查看文章时仅对每小时编制索引值。

答案 4 :(得分:1)

我注意到来自Nidelven的人刚刚发布了http://plone.org/products/Products.ZODBFriendlyCounter,它承诺在没有过多的ZODB写入/膨胀的情况下本地执行此操作。值得一试,希望听到更多关于此的专家意见。

答案 5 :(得分:0)

如果你使用灵巧,你应该自定义一个综合浏览行为,将annotoatin数据添加到主对象,注释日期使用volatile属性。

相关问题