从Java缓慢地列出Neo4j中的传入边缘

时间:2015-05-26 13:27:39

标签: neo4j

我有一个存储在Neo4J数据库中的大图(20M +节点)。 从Java程序,我需要检索几个节点的传入边集并计算它们的交集。 我的图表中某些节点的不确定性非常高(> 300,000)。

我尝试了以下内容:

在具有390,241个传入边的节点上,需要10秒才能完成。 但是,如果我将节点关系存储在PostgreSQL数据库中,我可以在不到1秒的时间内检索该节点的所有传入关系。 问题是我必须为几个(可能是高不确定的)节点重复这个操作,这需要花费很多时间。我认为在热身之后,Neo4j数据库反应会更快,但事实并非如此。

for ( Relationship r : source.getRelationships(Direction.INCOMING, DynamicRelationshipType.withName("Link")) ) 
{
    Node other = r.getOtherNode(source);
    set.add(other);
}

我真的不想仅仅为了这个操作在PostgreSQL中复制我的图形,所以我需要一些提示(如果有的话)来加速Neo4j。

我的电脑有32G的RAM,我的程序的Java堆空间是20G。 所有其他设置均为默认值。

提前感谢您的帮助!

0 个答案:

没有答案