我有这个密码查询...
start u = node(251)
match u -[I:PREFERENCE]-> i,
i <-[Q:CATEGORY|IS_IN*0..]- q <-[C:JOB|LOCATION]- o,
o -[J:JOB]-> j -[JL:LABEL]-> jl,
o -[P:LOCATION]-> p -[PL:LABEL]-> pl
where jl.lang = "en"
and pl.lang = "en"
return distinct o.title, o.description, type(C) as PreferenceType,
jl.name as Job, pl.name as Location
...这还不是很有效。问题是,如果我跳过标签关系,它会返回预期的结果。但是,如果我把它留在那里,结果取决于最后两个匹配子句(o -[J:JOB]-> j -[JL:LABEL]-> jl
和o -[P:LOCATION]-> p -[PL:LABEL]-> pl
)的顺序。
如果LOCATION
是最后一个,我只会收到基于 LOCATION 的结果,如果我放在JOB
最后一个位置,只会收到基于 JOB 的结果。
最后,我想要正确的结果(包括基于 LOCATION 和 JOB 的结果),但我也想知道为什么这有什么不同?
我在1.9.M03
这里使用 Neo4j