You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将商品推荐SQL查询转换为Cypher查询的实现方案

对应的Cypher查询编写

首先假设你的图数据模型定义如下:

  • 节点标签:User(用户)、Product(商品)
  • 关系类型:RATED(评分),关系属性value存储评分值

基础Cypher查询

MATCH (user1:User {id: 1})-[r1:RATED {value: 5}]->(productA:Product)
MATCH (productA)<-[r2:RATED {value: 5}]-(user2:User)
WHERE user2.id <> user1.id
MATCH (user2)-[rB:RATED {value: 5}]->(productB:Product)
// 排除用户1已经评价过的商品,实现「未购买/未评价」的推荐要求
OPTIONAL MATCH (user1)-[:RATED]->(excludedProduct:Product)
WHERE excludedProduct.id = productB.id
WITH productB, excludedProduct
WHERE excludedProduct IS NULL
RETURN DISTINCT productB

逻辑说明

  1. 第一步MATCH定位到目标用户user1,并找到他打5分的所有商品productA
  2. 第二步MATCH找到所有给productA打5分的其他用户user2,通过WHERE排除目标用户自己
  3. 第三步MATCH找到这些相似用户user2打5分的商品productB
  4. 通过OPTIONAL MATCH和后续过滤,排除掉目标用户已经评价过的商品,确保推荐的是用户未接触过的商品
  5. 最后用DISTINCT去重,避免同一个商品被多次推荐

优化建议

如果需要按推荐热度(被相似用户打5分的次数)排序,可以修改返回语句:

RETURN productB, COUNT(productB) AS recommendationCount
ORDER BY recommendationCount DESC

内容的提问来源于stack exchange,提问作者KWriter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:50:28