密码多重匹配非常慢

时间:2016-06-18 16:28:20

标签: neo4j cypher

我想匹配一些不满足条件的节点,但它很慢。如何优化呢?数据库中有大约70000个节点。

match (n:A)--(p:B)--(q:C)
with collect(n) as nc 
match m where not m in nc 
return count(m)

1 个答案:

答案 0 :(得分:0)

无需首先获得与初始模式匹配的所有节点。只需遍历所有节点并检查它们即可:

MATCH (m) WHERE NOT (m)--(:B)--(:C)
RETURN count(m)

或者如果标签上的条件是' A'很重要:

MATCH (m) 
OPTIONAL MATCH p = (m)--(:B)--(:C)
WITH m WHERE (p IS NULL) OR (NOT p IS NULL AND NOT 'A' IN LABELS(m))  
RETURN count(m)