我想按比例标识图中的第二级连接,类似于how to find 2nd level of connections in neo4j?
在Neo中识别二级连接很简单,就像对该线程的公认答案:
MATCH (n)-[:CALLED]->()<-[:CALLED]-(result)
WHERE n.id = 300
RETURN result
这在我的数据集上可以正常工作,但我希望有更广阔的视野。本质上,我想在上面的查询中删除WHERE,如下所示:
MATCH (n)-[:CALLED]->()<-[:CALLED]-(result)
RETURN n, result
使用Neo4j桌面,在运行第二个查询时出现OOM错误。有更好的方法吗?
答案 0 :(得分:0)
全图查询可能会很昂贵。如果有任何方法,您可以缩小可能有用的工作范围,例如,如果节点应仅具有特定标签。
您还可以在返回的节点的id上添加谓词,以免获得镜像结果(相同的节点,但是交换它们绑定的变量):
MATCH (n)-[:CALLED]->()<-[:CALLED]-(result)
WHERE id(n) < id(result)
RETURN n, result
您可能还需要检查计算机上有多少可用内存,以及为Neo4j的堆使用配置了多少内存。参见memory configuration documentation。