【发布时间】:2017-12-22 19:26:23
【问题描述】:
我是 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)
结果是它返回“父亲”而不是“儿子”。
如果我将查询更改为[*..6]->(o2),则返回“SON”。
但我需要考虑搜索可能会使o1 成为没有传出关系的节点,在这种情况下,上述修改的查询会失败。
所以:
- 原始查询可以处理没有出站关系的节点,但可能会返回错误的关系。
- 修改后的查询可以返回正确的关系(到目前为止),但不能处理“无出关系”节点。
我当然可以将每个节点更改为至少有一个传出关系来修复问题 2,但这太多余了。
希望得到您的建议。
【问题讨论】:
标签: neo4j