Neo4J - 创建大量关系(360 万)

Neo4J - creating large amount of relationships (3.6million)

我是 Neo4j 的新手,尝试在大约 250 万个节点之间创建大量关系 (~350 万) 时遇到困难。我正在尝试 运行 使用本地主机上 Neo4j 的基于 Web 的界面进行下面的查询。查询 运行s,但大约 5 分钟后我在浏览器上收到一条消息说 "Disconnected",其他时候我收到一条消息抱怨 java 堆。我不确定我的查询是否不适合我想做的事情,或者只是效率低下,或者我对数据库的要求太多了?谁能建议我如何创建节点之间的关系?

节点结构非常基本:客户:CSN、位置、性别

我用于关系的文件也很简单; 关系:SourceCSN、DestCSN

using periodic commit 100 
load csv with headers from "file:///c:/datafiles/InterCustomerRelationships.csv" as csvLine 
MATCH (from:Customer {CSN: csvLine .SourceCSN}), (to:Customer {CSN: csvLine.DestCSN})
CREATE (from)-[:PAID]->(to)

我在 windows 7 上使用 Neo4J 2.1.1,内存为 8GB。

在此先感谢您的任何帮助/建议 - 我们将不胜感激。

首先,确保您在客户标签的 属性 CSN 上有索引。这可以是一个简单的索引,或者我猜你的情况是一个唯一的约束。

其次,我建议运行先导入一小段10行,然后分析一下执行计划是什么样的。为此,您可以 运行 相同的导入和限制集(首先备份您的数据库),这应该在 neo4j-shell 中完成:

PROFILE
load csv with headers from "file:///c:/datafiles/InterCustomerRelationships.csv" as csvLine 
WITH csvLine
LIMIT 10
MATCH (from:Customer {CSN: csvLine .SourceCSN}), (to:Customer {CSN: csvLine.DestCSN})
CREATE (from)-[:PAID]->(to)