0
我想在我的Neo4j数据库查询以下子:与分支路径的Cypher查询
(a)-->(b)-->(c)-->(d)
|
| -->(e)
注:A,B,C,d,e为属性值(非唯一值 )为每个节点。这些具有相似属性值(a到e)的节点有成千上万个,但是它们是相互随机连接的。
我该如何编写Cyper查询来专门查找特定的子图(类似于子图同构问题)我寻求并返回(a)?我试过以下Cyper查询,但其他子图弹出:
START n1=node:SomeIndex(AttrVal="a")
MATCH n1-[]->n2-[]->n3-[]->n4
WHERE n2.AttrVal="b" AND n3.AttrVal="c" and n4.AttrVal="d"
WITH n1, n2
MATCH n2-[]->n5
WHERE n5.AttrVal="e"
RETURN n1
我是否在使用WITH和2nd MATCH子句时出错?
谢谢!
你能在自然语言描述你的查询应该真的?你的cypher语句不适合ascii艺术图,因为你在Cypher中匹配n1 - > n5,但b以ascii连接到e。 –
Stefan - 更新了代码示例以正确匹配ASCII图形。我本质上是试图在这里完成子图匹配,在数据库中充满了具有各种属性值的所有这些节点。 –