多个neo4j节点联接:“此查询在断开连接的模式之间建立笛卡尔积”

Chr*_*isE 3 neo4j cypher

我正在运行此查询:

MATCH (a:TEST:LOC1),(b:TEST_JOIN:LOC1),(c:TEST:LOC1)
WHERE a._out = b._in and b._out = c._in and c._text = 'P'
CREATE (a)-[r:TEST_JOIN]->(c)
Run Code Online (Sandbox Code Playgroud)

它运行非常缓慢,执行计划显示:“此查询在断开连接的模式之间建立笛卡尔积”

所有属性都已编入索引,而我尝试过:

MATCH (c:TEST:LOC1) where c._text='P' with c
MATCH (a:TEST:LOC1),(b:TEST_JOIN:LOC1)
WHERE a._out = b._in and b._out = c._in
CREATE (a)-[r:TEST_JOIN]->(c)
Run Code Online (Sandbox Code Playgroud)

对不起,如果这是基本的。有人知道如何优化吗?提前谢谢了。

Evg*_*gen 5

我会尝试这个

MATCH (c:TEST:LOC1) where c._text='P' with c
MATCH (b:TEST_JOIN:LOC1) where b._out = c._in with b, c
Match (a:Test:LOC1) WHERE a._out = b._in with a, c
CREATE (a)-[r:TEST_JOIN]->(c)
Run Code Online (Sandbox Code Playgroud)