如何解决源和多个目的地之间的最短路径
它具有使用 CHILD_OF 关系的关系层次结构。
所有绿色节点(见)都是书籍的权利。
父母可以看到的所有书籍也对孩子可见,但反过来不行。
此外,孩子有可能在不涉及父母的情况下直接看书。
这里的问题是找到从孩子到书籍的最短路径。
在这种情况下,C1 有 2 条路径(通过权利)到 Book1,但只有 1 条到 Book2。 Book3 没有。
Neo4j Cypher 查询应仅返回从 C1 到所有书籍的最短路径。
我尝试使用 Neo4j shortestPath 函数,但它不起作用。
MATCH (c:Child {name:'C1'} ),(b:Book),p = shortestPath((c)-[*]-(b))
RETURN p
所需的最终图表应如下所示:
解决方法
您需要将关系设为从 Child 到 Book 的方向。这是因为当你输入 * 时,它会包含一个你不需要的从 book3 到 library 的路径。
MATCH (c:Child {name:'C1'} ),(b:Book),p = shortestPath((c)-[*]->(b))
RETURN p
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。