在googleappengine数据中计算得分和日期的索引

2024-04-29 11:56:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个基于googleappengine(python)的网站,它允许用户生成内容,并对这些内容进行投票(喜欢/不喜欢)。你知道吗

我们的设计师有点含糊不清,他认为头版应该是最新内容和流行内容之间的一个平衡点,可能是假设这些内容只是创造了一个评分值,衡量喜欢/不喜欢与创建以来的时间。最终,目标是:(1)不良内容很快被过滤掉;(2)继续流行的内容保留时间更长;(3)新内容有机会保留足够长的时间,以获得足够的选票来决定其好坏。你知道吗

我可以很容易地根据喜欢/不喜欢来计算分数。但是把时间因素结合起来产生一个可以索引的分数似乎是不可行的。我基本上需要每天重新索引所有的内容来调整它的分数,一旦我们有了相当数量的内容,这似乎成本过高。所以,我找不到可能的解决办法。你知道吗

我还建议在什么地方设置时间框(所有时间、每天、每周),但他说用户不太可能查看默认视图以外的选项卡。另外,如果我根据上周的数据进行筛选,我需要按时排序,然后第二流行度排序基本上没有意义,因为提交时间实际上是独一无二的。你知道吗

有什么我可能忽略的解决方案的建议吗?你知道吗

像Google的预测API或BigQuery这样的东西能更好地处理这个问题吗?你知道吗


Tags: 用户内容目标排序网站时间投票评分
1条回答
网友
1楼 · 发布于 2024-04-29 11:56:09

这样的系统通常被称为“频率”,有很多方法可以做到这一点。一种方法是让投票随着时间的推移而“衰减”;我过去在appengine上通过存储当前分数和上次更新的分数实现了这一点;任何投票都会根据上次更新的时间对分数应用指数衰减,然后再存储这两个值,一个后台进程每天运行几次,更新一段时间内没有收到投票的帖子的得分和衰减时间。因此,一个职位的得分总是趋向于0,除非它始终获得了选票。你知道吗

另一个更简单的系统是给帖子编序列号。每当有人投票给一个职位,增加其数量。因此,自然的排序是按创建顺序,但投票有助于“改组”的东西,把更多的投赞成票的职位之前更新,但投票较少的职位。你知道吗

相关问题 更多 >