nebuma 中如何使用多 match with 查询?

1、业务场景:要查询一条图路径(路径路线是:A->B->C->Q->W->E->R->T->D),C点和终点D有条件限制(C点的条件限制是:A与C的连线B上有Etd,对Etd有时间限制;终点D的限制是:该点的属性gi_date有时间限制)
2、遇到的问题:使用下述2种查询方式时,使用查询方式1时输出结果正确,但是使用查询方式2会输出大量数据且溢出内存。
3、疑惑点
3.1、查询方式1、2的思路都是先过滤在查询,区别是查询方式2多使用了一次match with把D点也过滤了出来,那么最后一个match中就可以直接使用指定的名称,但是为什么这种方式会造成内存溢出也就是数据量会剧增?
3.2、如果**想在一个语句中使用多次match with指定公共查询该怎么写?**查询官网后没有看到这种案例。

// 查询方式1
MATCH (v1:A)-[e1:B]->(v2:C) WHERE (e1.Etd>=“2024-05-06” AND e1.Etd<=“2024-05-12”) WITH DISTINCT v2
MATCH (v2)-[e2:Q]->(v3:W)-[e3:E]->(v4:R)-[e4:T]->(v5:D)
WHERE (v5.D.gi_date>=“2024-04-12” AND v5.D.gi_date<=“2024-05-12”)
RETURN id(v2) as C, id(v3) as cr, id(v5) as dn, id(v4) as blawb, properties(e4).weight_charge as weight_charge
;

// 查询方式2
MATCH (v1:A)-[e1:B]->(v2:C) WHERE (e1.Etd>=“2024-05-06” AND e1.Etd<=“2024-05-12”) WITH DISTINCT v2
MATCH (v5:D) WHERE (v5.D.gi_date>=“2024-04-12” AND v5.D.gi_date<=“2024-05-12”) WITH v5
MATCH (v2)-[e2:Q]->(v3:W)-[e3:E]->(v4:R)-[e4:T]->(v5)
RETURN id(v2) as C, id(v3) as cr, id(v5) as dn, id(v4) as blawb, properties(e4).weight_charge as weight_charge
;

可以看下 profile,我理解查询方式 2 有可能因为 D点比较多,且没有下推,导致查询出来再过滤比较消耗性能。
“多次match with指定公共查询”,这个没太理解