Neo4j 使用筛选属性匹配子句还是使用WHERE子句匹配?

Neo4j 使用筛选属性匹配子句还是使用WHERE子句匹配?,neo4j,cypher,Neo4j,Cypher,我只想问一个非常简单的问题。假设neo4j提供的示例电影数据库和以下两个查询: MATCH (n:Person)-[:ACTED_IN]->(m:Movie {title:"The Matrix"}) RETURN n,m 及 这两个查询在计算上是等价的还是第一个查询更有效 在我看来,在第一种情况下,MATCH在遍历原始图的同时“动态”生成请求的子图。但是,在第二种情况下,MATCH会生成一个更大的子图,然后在过滤冗余节点后,将其缩减为请求的子图,对吗?是否有人能以某种方式证实这一假设

我只想问一个非常简单的问题。假设neo4j提供的示例电影数据库和以下两个查询:

MATCH (n:Person)-[:ACTED_IN]->(m:Movie {title:"The Matrix"}) 
RETURN n,m

这两个查询在计算上是等价的还是第一个查询更有效


在我看来,在第一种情况下,MATCH在遍历原始图的同时“动态”生成请求的子图。但是,在第二种情况下,MATCH会生成一个更大的子图,然后在过滤冗余节点后,将其缩减为请求的子图,对吗?是否有人能以某种方式证实这一假设,或者这一假设是错误的?

如果您想签入您的neo4j版本,如果这些查询相同,您应该使用
profile
语句。查看此处了解更多信息

谢谢Evgen。这很有帮助。这两个查询似乎做了完全相同的工作,过滤的优先级是为了避免在处理查询时产生冗余结果。
MATCH (n:Person)-[:ACTED_IN]->(m:Movie) 
WHERE m.title = "The Matrix" 
RETURN n,m