Neo4j版本:3.0.4
以下查询的目的是消除路径中的重复总线服务和bustop,如果我没有提供关系计数new_pair
,但如果关系计数定义为-[r:CONNECTSWITH]->
,则它可以正常工作,然后它的投掷
找不到钥匙:r
工作:
-[r:CONNECTSWITH*..3]->
不工作:
OPTIONAL MATCH p=(o:PORT{name:"busstop1"})-[r:CONNECTSWITH]->(d:PORT{name:"busstop2"})
WHERE ALL(r1 IN rels(p)
WHERE 1 = size(filter(r2 IN rels(p) WHERE (r1.service = r2.service))))
AND ALL(n IN nodes(p) WHERE 1 = size(filter(m IN nodes(p) WHERE id(m) = id(n))))
RETURN p
LIMIT 10
解决方案:
OPTIONAL MATCH p=(o:PORT{name:"busstop1"})-[r:CONNECTSWITH*..3]->(d:PORT{name:"busstop2"})
WHERE ALL(r1 IN rels(p)
WHERE 1 = size(filter(r2 IN rels(p) WHERE (r1.service = r2.service))))
AND ALL(n IN nodes(p) WHERE 1 = size(filter(m IN nodes(p) WHERE id(m) = id(n))))
RETURN p
LIMIT 10
答案 0 :(得分:1)
旁白:这感觉就像一个neo4j错误。如果您遇到最新的neo4j版本,可能需要提交neo4j issue。
作为一种可能的解决方法,由于查询实际上并未使用r
标识符,请尝试将其从查询中删除。