Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph 多个匹配语句出现问题,结果没有有效模式的行_Graph_Neo4j_Cypher - Fatal编程技术网

Graph 多个匹配语句出现问题,结果没有有效模式的行

Graph 多个匹配语句出现问题,结果没有有效模式的行,graph,neo4j,cypher,Graph,Neo4j,Cypher,我试图用Neo4j创建一个带有代理和“知道”的图表 关系 Match (a:AGENT {name:'a'}) Match (e:AGENT {name:'e'}) Match d1 = (a) -[r1:KNOWS]-> (e) Match d2 = (a) -[r1:KNOWS]-> (x) -[r2:KNOWS]-> (e) Return d2 鉴于: d1独立运行,不返回任何行。 d2 ran独立返回一个有效结果 当我运行上面的代码时(使用这两个语句),结果是没有行。

我试图用Neo4j创建一个带有代理和“知道”的图表 关系

Match (a:AGENT {name:'a'})
Match (e:AGENT {name:'e'})
Match d1 = (a) -[r1:KNOWS]-> (e)
Match d2 = (a) -[r1:KNOWS]-> (x) -[r2:KNOWS]-> (e)
Return d2
鉴于: d1独立运行,不返回任何行。 d2 ran独立返回一个有效结果

当我运行上面的代码时(使用这两个语句),结果是没有行。为什么d2受到d1的影响而没有行

我是cypher和neo4j的新手,请帮忙

以下是在neo4j官方控制台上设置的数据库: 你可以这样试试

MATCH d2=(a:AGENT { name:'a' })-[r1:KNOWS]->(x)-[r2:KNOWS]->(e:AGENT { name:'e' })
optional match d1 = (a) -[r:KNOWS]-> (e)
RETURN d2

这就是您所需要的吗?

d1
不返回任何数据,因为从
a
e
没有单跳路径。由于所有匹配项都不是可选的,因此整个查询不会返回任何数据

这将导致d1找到匹配项

match (a:AGENT {name:'a'})
, (e:AGENT {name:'e'})
, d1 = (a) -[r1:KNOWS*..2]-> (e)
return d1
这是您的原件,只需稍作修改即可返回数据

match (a:AGENT {name:'a'}), (e:AGENT {name:'e'})
, d2 = (a) -[r1:KNOWS]-> (x) -[r2:KNOWS]-> (e)
optional match d1 = (a) -[r1:KNOWS]-> (e)
return d2

match(a:AGENT{name:'a'}),(e:AGENT{name:'e'})-在match中使用逗号会影响性能。此查询确实有效,但我要找的是有一个查询可以找到两个代理之间的最短路径。我开始在脚本中实现一个逻辑,调用查询以检查有效输出,并按d1、d2、d3的顺序调用密码。。。。(d1=1度连接)。让我知道是否有更好的方法,以及是否可以使用单个密码查询而不是尝试d1、d2、d3、d4。提前感谢:)如果您只是查找两个代理之间的所有最短路径,我将使用
allshortestpath
<代码>匹配(a:AGENT{name:'a'}),(e:AGENT{name:'e'}),p=allshortestpath(a-[:KNOWS*.3]->e)返回p,长度(p)为度。
.3
允许您设置代理之间的最大度数。非常好!这很有魅力!谢谢你的帮助,戴夫,这确实是一种更干净、更高效的方法:)