大规模识别二级连接



我想在图中大规模识别二级连接,类似于如何在 neo4j 中找到第二级连接?

在 Neo 中识别二级连接很简单,就像该线程的公认答案一样:

MATCH (n)-[:CALLED]->()<-[:CALLED]-(result)
WHERE n.id = 300
RETURN result

这在我的数据集上工作正常,但我想要一个更广阔的视野。本质上,我想删除上述查询中的 WHERE,如下所示:

MATCH (n)-[:CALLED]->()<-[:CALLED]-(result)
RETURN n, result

使用 Neo4j 桌面,我在运行第二个查询时收到 OOM 错误。有没有更好的方法可以做到这一点?

图形范围的查询可能很昂贵。如果有任何方法可以缩小工作范围,例如节点是否应该仅具有特定标签。

您还可以在返回的节点的 id 上添加谓词,这样您就不会获得镜像结果(相同的节点,但交换它们绑定到的变量):

MATCH (n)-[:CALLED]->()<-[:CALLED]-(result)
WHERE id(n) < id(result)
RETURN n, result

您可能还想检查计算机上有多少内存可用,以及为 Neo4j 的堆使用配置了多少内存。请参阅内存配置文档。

最新更新