首页 文章

用neo4j存储有向图

提问于
浏览
1

这是我的场景:

  • 单个应用程序生成有向图 - 它相对 balancer ,具有大约10个级别,20k节点和30k关系,

  • 此图必须立即存储在neo4j中,以便此应用程序可以进行一些Cypher查询并继续前进 - 尽快执行此步骤非常重要,

  • 同时这个图必须以某种方式存储(Cypher查询?CSV?自定义?),以便另一个应用程序在某个时刻获取几千个这些图,将所有这些图添加到neo4j并执行Cypher查询对他们而言 - 时间不是这一步的关键因素 .

我以为我将能够创建一个Cypher查询,它将立即插入整个图形 . 这很符合我的情况,因为我可以构建我的图表,将其表示为Cypher查询,在本地执行以执行应用程序在单个图表上需要执行的操作,然后将该查询存储在某处以备将来使用 . 不幸的是,它只适用于小图表 .

当我使用neo4j-shell或Java代码调用下面的查询时,它会在任何具有几百个节点/关系的图上中断:

CREATE (h1:Node:_Node {...}), (h2:Node:_Node {...}), (h3:Node:_Node {...}), ...,
       (h1)-[:REL1]->(h2), (h1)-[:REL2]->(h3), (h2)-[:REL2]->(h3), ...

我尝试了其他多种方法,但没有任何效果如预期的那样 .
请告知这里最好的方法是什么 .

2 回答

  • 1

    对于大型数据集,请使用neo4j-import工具,massively parallel and scalable CSV importer .

  • 3

    将您的数据存储到几个csv文件(节点,关系,...)中并使用LOAD CSV cypher clause .

    这应该是非常快的,您应该能够在几秒钟内加载数据并查询图表 .

    然后,您可以将csv文件分发到另一台计算机并以相同的方式加载它 .

相关问题