我有一个看起来像这样的图表
a-[:LIKES { frequency:6 }]->ice b-[:LIKES { frequency:3 }]->pizza 等
我正在运行此查询,以找出两个人喜欢的常见食物。如果我对频率属性进行汇总以创建食物的相似索引,则效果很好。
START b=node:node_auto_index(name='B')
MATCH p = b-[r1:LIKES]->stuff, someone_else_too -[r2:LIKES]->stuff
WITH b, someone_else_too, r1.frequency + r2.frequency AS likeIndex
RETURN likeIndex ,someone_else_too
ORDER BY likeIndex DESC
但是,我想做的是找到两个频率值的最小值(不是总数的最小值)。所以像这样的 min(r1.frequency, r2.frequency)。如果一对中的一个对特定食物具有非常高的亲和力,那么我们的目标是消除会增加相似排名的偏度。
START b=node:node_auto_index(name='B')
MATCH p = b-[r1:LIKES]->stuff, someone_else_too -[r2:LIKES]->stuff
WITH b, someone_else_too, min(r1.frequency,r2.frequency) AS likeIndex
RETURN likeIndex ,someone_else_too
ORDER BY likeIndex DESC
但是,Cypher 不会接受这种语法。有什么建议或解决方法吗?在此处查看 Neo4j 控制台