我在图中的以下节点:Neo4j的查询路径
Car
Trash
CarToTrash
[:has_input]-(Car)
[:has_output]-(Trash)
RecycleTrash
[:has_input]-(Trash)
[:has_output]-(Car)
我试图找到一个查询,这将给我两种类型之间的所有最短路径,即
(车) - [has_input] - (CarToTrash) - [has_output] - (Trash) - [has_input] - (RecycleTrash) - [has_output] - (Car)
虽然路径的长度可能会有所不同。它可以有更多像XToY一样的has_input和has_output关系的节点。我想找到可能添加到图形中的任何两种类型之间的最短路径。 CarToTrash和RecycleTrash表示函数,关系has_input和has_output是函数的输入类型和返回类型。基本上我所拥有的是一个类型和函数的图,我想看看图中任何两个任意类型之间是否存在函数路径。
我试着用下面的查询工作,但它会找到不遵循模式has_input,has_output(如果存在的话)的路径。此外,我试图找到从Car回到Car的方式,我无法做到,我只能找到Car to Trash,但是如果不能查询这种循环,我可能会进行管理。
MATCH car, trash WHERE car.uid='Car' AND trash.uid='trash'
WITH car, trash MATCH p = allShortestPaths(car-[*..15]-trash) return p;
谢谢。 Cypher中最终会提供这种功能吗? – user2608171