Neo4j 开始和结束可能相等的返回路径

Neo4j 开始和结束可能相等的返回路径,neo4j,cypher,Neo4j,Cypher,我有一个分类法作为Neo4j图。基本结构如下: taxonomyName -HAS_ROOT_TERM-> root -IS_BROADER_THAN-> term -IS_BROADER_THAN-> term'-IS_BROADER_THAN-> term'' - ... 现在,我想为给定的术语(例如术语“”)指定其来自分类根的路径(或多个路径;请注意,可能有多个分类根,该结构实际上是一个多层次结构): TAIL将第一个节点排除在外,因此我无法返回分类节点本身。这很

我有一个分类法作为Neo4j图。基本结构如下:

taxonomyName -HAS_ROOT_TERM-> root -IS_BROADER_THAN-> term -IS_BROADER_THAN-> term'-IS_BROADER_THAN-> term'' - ...
现在,我想为给定的术语(例如术语“”)指定其来自分类根的路径(或多个路径;请注意,可能有多个分类根,该结构实际上是一个多层次结构):

TAIL
将第一个节点排除在外,因此我无法返回分类节点本身。这很好,除非我直接查询根项。然后什么也不返回。当然:我搜索的路径至少包含三个元素:分类节点、根节点和根的任何后代。现在我需要表示,
r
n
可能相等。我试图使
关系更宽\u可选,但由于找不到模式,因此只返回null

那么,如何将查询限制为包含根项的路径,并允许长度为1的路径只包含根项

谢谢大家!

恐怕是典型的“RTFM”案例;-)

位于的文档告诉我们

... root -[:IS_BROADER_THAN*0..]-> term ...
这就是诀窍。仅指定星号假定范围为
1..
。使用
0..
,开始节点和结束节点可能相同,即可能根本没有遍历该关系

... root -[:IS_BROADER_THAN*0..]-> term ...