具有 Javascript 的电子商务网站的简单 popular/trending 产品算法

Simple popular/trending products algorithm for an ecommerce site with Javascript

我目前正在建设一个小型电子商务网站,对于主页,我想根据受欢迎程度对产品进行排名。产品架构具有以下数据:

{
  ...
  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
}

什么是(相对)简单的 algorithm/code 我可以用来实现这个(使用 Node.js),其中产品将根据受欢迎程度进行排名(考虑时间,因此内容不陈旧)。

谢谢。

首先,你需要一个基于时间的指标来解决这个问题。

整体趋势产品没有多大意义,特别是对于电子商务应用程序。

比方说,您想查找特定日期(比如今天)的热门产品。

这不是一个容易解决的问题。并且没有只有一种直接的方法可以解决它。对于每个公司,一种方法有效!

理想情况下,这里的简单解决方案是根据多种因素的组合创建分值。例如购买次数、浏览次数、点击次数等。

在这里,您有 datePosted 参数。现在,为此创建一个 date_score。所以,这里的基本思想是昨天发布的产品比一周前发布的产品得分更高。您输入的值需要针对您的算法自定义进行调整和检查。

同样,为 avgRatingnoViews 实施类似的评分。

准备好这些分数后,为这些分数创建权重。现在这100个中的加权平均值就是最终分数。

所以,最后一个示例解决方案:

  • 发布日期:

    • 如果日期在最近 3 天内(得分 = 100)
    • 如果日期是上周(分数= 75)
    • 如果日期在上周(分数 = 50)
    • 否则默认分数 = 25。
  • 星级:

    • (Rating/5 ) *100
  • 观看次数:

    • 在这里,您可以使用百分位数。
    • 假设所有产品的最大浏览量是 x。
    • 那么,观看分数是(views/x)*100

现在,处理两个分数匹配时发生的极端情况。

在此之后,您可以简单地通过分数参数进行排序。

此外,请确保您所做的一切都是动态的,因为静态阈值通常不会提供很好的结果!