gpt4 book ai didi

database - 跟踪网页内容在一个页面中被浏览的次数?

转载 作者:搜寻专家 更新时间:2023-10-30 23:02:06 25 4
gpt4 key购买 nike

我正在阅读有关 Quora 的答案排名算法的更多信息,并遇到了以下我试图对其进行逆向工程的功能:

http://blog.quora.com/Improved-Answer-Ranking-Follow-Up

“对于新的答案排名,我们不仅仅关注赞成票和反对票的绝对数量;我们还会考虑一个答案所受到的关注程度。例如:如果有 20 人看到一个答案,并且所有 20 个人都对它投了赞成票,这可能是比成千上万的人看到一个答案但只有 100 人点赞的情况更强的质量信号。”

Quora 的小背景:它在布局上与 Stack Exchange 非常相似。有人发布问题,人们回复答案,网站在单个页面中对所有答案进行排名/显示。

鉴于所有答案都被编译到一个页面中,Quora 将如何跟踪每个答案获得的浏览量?

潜在假设:

  1. 每个单独的答案都存储在数据库中,连同它被提取了多少次的计数器。
  2. 当用户第一次访问该页面时,只有前几个答案是从数据库中获取并显示在页面上。随着用户滚动向下,通过额外的 GET 动态获取更多答案要求。
  3. 每次从数据库中获取答案时,数据库计数器递增,从而跟踪答案的次数已被观众看到。

对这种方法的担忧:

  1. 现在每个 GET 请求都需要更新数据库,这将数据库工作量显着恶化。
  2. 而不是在用户加载后立即批量获取 10-20 个答案页面,该网站每次都必须获取 1-2 个答案用户滚动到页面底部。这会恶化延迟和用户体验,因为用户必须保持等待其他内容出现。

这些真正的担忧会随着规模的扩大而扩大吗?还是可以对其进行管理?

最佳答案

这里是关于它是如何完成的一些推测。

存储 View 统计信息

是的,Quora 确实需要存储每个答案的浏览量,应用程序开发人员通常大规模地这样做。但是,您暗示他们将其存储在与答案相同的位置,而实际上,他们可能会将其单独存储在一种介质中,该介质针对快速写入进行了更优化,而可靠性则更少(如果您错过了一些 View ,则可以)到服务器中断;如果您不保存用户的答案,那就不太好了)。例如,它可以存储在 Redis 中,它将统计信息保存在内存中,默认情况下每分钟只写入一次磁盘。或者他们可以将它们存储在 memcached 中并编写自己的周期性进程以将结果转储到主数据库。

计算观看次数

不太可能像您描述的那样计算 View ,即请求数据的次数,因为良好的分布式架构应该在浏览器中以及沿途的中间点缓存这种内容。他们更有可能直接在浏览器和应用程序中跟踪 View ,方法是在滚动事件发生时检查某些元素是否可见。然后,他们可以定期上传大量已查看项目的列表。

关于database - 跟踪网页内容在一个页面中被浏览的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31231764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com