【问题标题】:AQL and Graph Traversal: Product recommendation exampleAQL 和图遍历:产品推荐示例
【发布时间】:2020-08-20 09:57:14
【问题描述】:

我一直在学习 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

此外,我还没有达到可以针对与当前客户进行了更多类似购买(即基于更高数量)的客户优化推荐的阶段。欣赏建议或有用的例子。

【问题讨论】:

    标签: graph traversal arangodb


    【解决方案1】:

    这是一个非常开放的问题。一个更精确的问题会得到更多更好的答案……但我会试一试。

    你可以用更简洁的方式表达你当前的查询:

    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. here.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多