shortestPath关系不能反映正确的方向

问题描述 投票:1回答:1

我是Neo4j的新手,正在开发一个小网站。

我已经设置了它们之间的节点和关系。对于大多数配对节点,我创建了一个相互链接。例如:

Zeus - FATHER -> Apollo
Appollo - SON -> Zeus

我使用shortestPath找到这两者之间可能的最短路径:

MATCH (o1 { name: 'Apollo' }),(o2 { name: 'Zeus' }), p = shortestPath((o1)-[*..6]-(o2)) RETURN nodes(p), relationships(p)

结果是它返回“FATHER”而不是“SON”。

如果我将查询更改为[*..6]->(o2),则返回“SON”。

但我需要考虑搜索可能使o1成为没有传出关系的节点,在这种情况下,上面修改的查询失败。

所以:

  1. 原始查询可以处理没有传出关系的节点,但可能返回错误的关系。
  2. 修改后的查询可以返回正确的关系(到目前为止),但无法处理“无关系”节点。

我当然可以将每个节点更改为至少有一个传出关系来修复问题2但这太冗余了。

希望得到你的建议。

neo4j
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.