“此查询在断开连接的模式之间建立笛卡尔积”警告

时间:2019-07-16 20:14:01

标签: neo4j cypher

  

使用来自“ file:///flights.csv”的标头加载csv作为排期   匹配(a:航班{number:Flights.flight}),(b:机场{label:flight.arrive})

     

创建(a)-[r:到达]->(b)

     

如果查询的一部分包含多个断开连接的模式,这将在所有这些部分之间建立笛卡尔乘积。这可能会产生大量数据并减慢查询处理。尽管偶尔会出现这种情况,但通常可以重新构造避免使用此叉积的查询,方法可能是通过在不同部分之间添加关系或使用可选匹配(标识符为:(b))。   匹配(a:航班{number:flights.flight}),(b:机场{label:flights.arrive})                                                                       ^

如何更正此查询?

1 个答案:

答案 0 :(得分:0)

不一定是不正确的。查询的重点是在两个节点之间创建连接的模式。唯一的方法是首先匹配这两个节点,这些节点当前未通过模式连接。

请记住,此警告仅是在您不希望创建笛卡尔积的情况下引起注意。在这种情况下,这正是您要执行的操作,因此请忽略警告。