4

我正在处理一个需要仙女复杂使用页面视图的案例。

每个内容对象都会有页面视图,这应该很容易访问,以便我们可以做与它相关的各种事情(按目录结果排序、显示、计算热门仪表......)。最接近的等价物是 youtube 视频的视图。

我正在考虑一些可能的方法来实现这一点:

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

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

  3. 使用关系数据库。那么我们如何使它与 portal_catalog 一起工作呢?

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

您对此的想法/经验?

4

6 回答 6

3

我们为客户项目(大型私有 Intranet)使用了外部日志分析器。建筑学:

  • 一个 js 库添加了一个“web bug”,一个带有额外查询参数的空 gif,从一个专用的 nginx 服务器加载。
  • 日志处理器拾取 nginx 日志,对其进行轮换,然后将这些行解析到数据库中,将访问与其他元数据一起计算在内。db 中的条目包括内容的 UID,以及其他有趣的角度。
  • 该站点具有对同一数据库的只读访问权限,可以进行统计查询。

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

我们现在面临的最大问题是缺乏数据仓库专业知识(将数据库中的单个访问行转换为有效的聚合),我们正在研究重新设置此设置以使用Piwik作为统计引擎。

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

于 2011-10-12T07:01:35.827 回答
2

你已经看过这个产品了吗?: http: //plone.org/products/collective.googleanalytics/

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

于 2011-10-11T22:02:45.517 回答
2

对于 ZODB 而言,每次访问都写入是最坏的情况。关系数据库通常非常擅长这类事情,我会先看看。

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

于 2011-10-12T02:04:04.920 回答
1

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

于 2012-03-08T04:03:12.990 回答
1

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

因此,首先与您的客户验证这一点。

接下来满足您需求的最佳方法是安装分析工具、googleanalytics 或其他任何工具,但要使用 API 来询问浏览次数最多的页面。如果您需要将其添加到 portal_catalog 中,您可以在查看文章时 + 仅每小时索引该值。

于 2011-10-12T13:35:54.623 回答
0

如果你使用 dexterity,你应该自定义一个页面浏览行为来添加注释数据到主对象,并且注释日期使用 volatile 属性。

于 2012-03-05T06:55:05.640 回答