【发布时间】:2018-01-25 06:01:27
【问题描述】:
我在一个图中有大约 150 万个节点,它们的结构是这样的(图片)
我运行一个 Cypher 查询,对遍历的每个关系执行计算:
WITH 1 AS startVal
MATCH x = (c:Currency)-[r:Arb*2]->(m)
WITH x, REDUCE(s = startVal, e IN r | s * e.rate) AS endVal, startVal
RETURN EXTRACT(n IN NODES(x) | n) as Exchanges,
extract ( e IN relationships(x) | startVal * e.rate) AS Rel,
endVal, endVal - startVal AS Profit
ORDER BY Profit DESC LIMIT 5
问题是它返回路径("One")->("hop")->("One"),这对我来说没用。
如何让它不选择之前遍历的节点作为下一个节点(即"One"->"hop"->"any_other_node_but_not_"one")?
我已阅读 NODE_RECENT 应该解决我的问题。但是,没有关于如何在 RestAPI 或 APOC 过程中指定最近节点长度的示例。
是否有针对我的案例的 Cypher 查询?
谢谢。
附:我对 Neo4j 和编码非常陌生(不到 2 个月)。因此,如果有明显的简单解决方案,我深表歉意。
【问题讨论】: