我正在使用Cypher查询语言,需要构建一个类似以下的查询:
(A) ----e1----(B)
\ |
\ |
e3 e2
\ |
\ |
(C)
其中A、B和C是节点,e1、e2和e3分别连接A和B、B和C以及A和C。
我感兴趣的是节点A和C。当e1、B和e2存在(并且符合某些属性)或者关系e3存在(并且符合某些属性)或者两者都存在时,这个模式应该匹配。我的问题在于我无法将其转换为Cypher语言。
为了给关系分配标识符,我需要在MATCH子句中指定它,例如:
MATCH (A)--[e1]--(B)--[e2]--(C), (A)--[e3]--(C)
但是这样做我告诉Neo4j我想要e1和e3以及e2同时存在,但实际上不是这样的。但如果我不给这些关系一些标识符,我就无法搜索它们的任何属性。如何构建这个查询?谢谢。
WHERE
子句中的第二个条件。 - cybersam