Kin*_*ics 4 javascript algorithm rank mongodb node.js
我目前正在构建一个小型电子商务网站,对于主页,我想根据受欢迎程度对产品进行排名。产品架构具有以下数据:
{
...
noViews: Number, // Number of times a user has clicked on the product
avgRating: Number, // Average star rating (1 - 5)
datePosted: Date // Date the product was posted
}
Run Code Online (Sandbox Code Playgroud)
我可以使用什么(相对)简单的算法/代码来实现这一点(使用 Node.js),其中产品将根据受欢迎程度进行排名(考虑到时间,因此内容不会过时)。
谢谢。
首先,您需要一个基于时间的指标来解决这个问题。
总体趋势产品没有多大意义,特别是对于电子商务应用程序而言。
比方说,您想要找到特定日期(例如今天)的热门产品。
现在这不是一个容易解决的问题。解决这个问题的直接方法并不只有一种。对于每家公司来说,都有一种方法有效!
理想情况下,这里的一个简单解决方案是根据因素组合创建一个分值。例如购买次数、浏览次数、点击次数等。
在这里,您有datePosted参数。现在,为此创建一个 date_score 。因此,这里的基本思想是昨天发布的产品比一周前发布的产品得分更高。您输入的值需要根据算法的定制进行调整和检查。
avgRating同样,对和实施类似的分数noViews。
准备好这些分数后,为这些分数创建权重。现在,100 分中的加权平均值就是最终分数。
所以,最后一个示例解决方案:
发布日期:
星级:
观看次数:
现在,处理两个分数匹配时会发生什么情况的极端情况。
之后,您可以简单地通过分数参数进行排序。
另外,请确保您所做的一切都是动态的,因为静态阈值通常不会提供很好的结果!
| 归档时间: |
|
| 查看次数: |
1736 次 |
| 最近记录: |