具有 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。所以,这里的基本思想是昨天发布的产品比一周前发布的产品得分更高。您输入的值需要针对您的算法自定义进行调整和检查。
同样,为 avgRating
和 noViews
实施类似的评分。
准备好这些分数后,为这些分数创建权重。现在这100个中的加权平均值就是最终分数。
所以,最后一个示例解决方案:
发布日期:
- 如果日期在最近 3 天内(得分 = 100)
- 如果日期是上周(分数= 75)
- 如果日期在上周(分数 = 50)
- 否则默认分数 = 25。
星级:
- (Rating/5 ) *100
观看次数:
- 在这里,您可以使用百分位数。
- 假设所有产品的最大浏览量是 x。
- 那么,观看分数是(views/x)*100
现在,处理两个分数匹配时发生的极端情况。
在此之后,您可以简单地通过分数参数进行排序。
此外,请确保您所做的一切都是动态的,因为静态阈值通常不会提供很好的结果!
我目前正在建设一个小型电子商务网站,对于主页,我想根据受欢迎程度对产品进行排名。产品架构具有以下数据:
{
...
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。所以,这里的基本思想是昨天发布的产品比一周前发布的产品得分更高。您输入的值需要针对您的算法自定义进行调整和检查。
同样,为 avgRating
和 noViews
实施类似的评分。
准备好这些分数后,为这些分数创建权重。现在这100个中的加权平均值就是最终分数。
所以,最后一个示例解决方案:
发布日期:
- 如果日期在最近 3 天内(得分 = 100)
- 如果日期是上周(分数= 75)
- 如果日期在上周(分数 = 50)
- 否则默认分数 = 25。
星级:
- (Rating/5 ) *100
观看次数:
- 在这里,您可以使用百分位数。
- 假设所有产品的最大浏览量是 x。
- 那么,观看分数是(views/x)*100
现在,处理两个分数匹配时发生的极端情况。
在此之后,您可以简单地通过分数参数进行排序。
此外,请确保您所做的一切都是动态的,因为静态阈值通常不会提供很好的结果!