ArangoDB AQL和图形遍历:产品推荐示例

mi7gmzs6  于 2022-12-09  发布在  Go
关注(0)|答案(1)|浏览(141)

我一直在学习Arangodb和使用AQL的图遍历,我也看了一些可以在网上找到的例子,比如飞行路线、演员和电影,但是我很难把我的头缠在写我最初认为是一个简单的产品推荐实验上,在这个实验中,一个客户根据其他客户(购买过类似产品的客户)的购买情况来推荐他/她没有购买的产品。
这是我设法实现到目前为止,检索产品,其他客户的谁购买了相同的产品作为当前客户

FOR products IN 1..1 OUTBOUND 'customers/118685' bought
    FILTER products._id LIKE "products/%" 
    FOR other_buyers IN 1..1 INBOUND products bought
    FILTER other_buyers._id != 'customers/118685' 
    FOR other_buyers_products IN 1..1 OUTBOUND other_buyers bought
    return other_buyers_products

此外,我还没有达到这样一个阶段,即可以针对与当前客户进行了更多类似购买(即基于更高的计数)的客户对推荐进行细化。感谢建议或有用的示例。

izj3ouym

izj3ouym1#

这是一个非常开放的问题。一个更精确的问题会导致更多更好的答案...但我会给予一试。
您可以用一种更简洁方式来表达当前的查询:

FOR product IN 3..3 ANY 'customers/1' purchases
RETURN DISTINCT product

可以使用COLLECT

FOR product IN 3..3 ANY 'customers/1' purchases
COLLECT pid = product._id WITH COUNT INTO count
RETURN { pid, count }

这仍然是一个非常幼稚的方法。你会得到像“你曾经买过香蕉,你应该买卫生纸”这样的建议,因为每个人最终都会买这些东西。你可以通过不仅保存客户买了什么产品,而且还保存何时购买来提高结果。然后你就可以找出经常一起购买的产品是什么,f.e.手电筒和电池。
在互联网上寻找进一步的灵感,f.e.here

相关问题