【发布时间】:2015-04-06 21:05:20
【问题描述】:
我正在使用 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 都存在,但事实并非如此。但如果我不给这些关系一些标识符,我就无法搜索它们的任何属性。
如何构建此查询?
谢谢。
【问题讨论】: