Neo4j 如何基于关系属性查找路径?

Neo4j 如何基于关系属性查找路径?,neo4j,Neo4j,我对Neo4J完全陌生,三天来我一直在想,如何在两个房间之间找到路径 函数allshortestpath()得到如下结果 或者像这样 (对不起,我的声誉不允许我直接包括图片) 这个函数是开箱即用的,但使用各种关系从头到尾遍历。但是如果我只想得到一条与某个属性有关系的路径呢 路径可以如下所示:(开始:房间{name:“x”})-[*]-(“另一个节点”)-[*]-(“另一个节点)-[:连接到{state:“free}]-(“另一个节点”)-[*]-(结束:房间{name:“y”} 我对通缉路径的了

我对Neo4J完全陌生,三天来我一直在想,如何在两个房间之间找到路径

函数
allshortestpath()
得到如下结果 或者像这样
(对不起,我的声誉不允许我直接包括图片)

这个函数是开箱即用的,但使用各种关系从头到尾遍历。但是如果我只想得到一条与某个属性有关系的路径呢

路径可以如下所示:
(开始:房间{name:“x”})-[*]-(“另一个节点”)-[*]-(“另一个节点)-[:连接到{state:“free}]-(“另一个节点”)-[*]-(结束:房间{name:“y”}

我对通缉路径的了解是:

  • 起始节点
  • 端节点
  • 路径中某个位置的关系的属性和标签
我不知道和不重要的是:

  • 这条路有多长
  • 在这条道路上还有哪些其他关系
下一步是更精确地指定我要查找的路径,例如通过该路径中节点的属性。
i、 e.找到从
(a)到(H)的路径,其中(C{type:“SC”})-[:连接到{state:“free”}]-(D{type:“SC”})

我已经读了很多东西,知道吗?我尝试了一百万种不同的密码,但是我读的越多,尝试的越多,我就越困惑。有人能给我一个提示吗

先谢谢你

伊克纳菲

我对通缉路径的了解是:

  • 起始节点
  • 端节点
  • 路径中某个位置的关系的属性和标签
您要查找的是ANY谓词,它测试谓词是否至少包含集合中的一个元素。在您的情况下,集合是路径中的所有关系

一个简单的查询是:

MATCH (start:Room {name:'x'}), (end:Room {name:'y'})
MATCH p=allShortestPaths((start)-[*]-(end))
WHERE ANY(
       x IN rels(p) WHERE type(x) = 'RELATIONSHIP_TYPE' 
                    AND x.prop = propValue )
RETURN distinct(p)

文档中的更多内容:

非常感谢。不仅这个密码工作起来很有魅力,我还认为我已经理解了它。