Neo4j关系创造

时间:2014-07-30 09:03:31

标签: neo4j relationships

Neo4J 2.0.3社区版 Windows Server 2008 R2 ENT 64位

您好, 我是Neo4j的新手并且一直试图加载一些数据和关系,但是遇到了障碍。 我使用加载CSV命令加载了680,000个节点,效果很好。

  

使用带有标题的PERICODIC COMMIT LOAD CSV   “file:/ c:/Intort/CSVsForImport/AMRentLine.csv”AS csvLine CREATE   (p:AmRentLine {Rentid:csvLine.Rentid,Itemid:csvLine.Itemid,Name:   csvLine.Name,Qty:tofloat(csvLine.Qty)})

Sample Data:

Rentid          Itemid       Name               Qty
0123-014160     18/0165-h   TRENCH RAMMER        52
0123-014165     18/0168-h   TRENCH RAMMER        65
4290-014167     18/0165-h   TRENCH RAMMER        43
4290-014188     10/0385-h   PERCUSSION DRILL      5
4290-014190     10/0385-h   PERCUSSION DRILL     28
4290-014197     11/0155-h   HEAVY DUTY DRILL      4

然后我加载了Itemtab

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/c:/Import/CSVsForImport/Itemtab.csv" AS csvLine
create (i:Itemtab {Itemid: csvLine.Itemid})

示例项目数据

Itemid
18/0165-h
18/0168-h
10/0385-h
11/0155-h
15/0230-h
11/0120-h
11/0170-h
26/0090-h
15/0225-h
71/6250-h
01/0110-h
18/0300-h
9940344-h
26/0120-h

然后我尝试创建关系

  

match(rl:AmRentLine),(it:Itemtab)其中rl.Itemid = it.Itemid merge   (它) - [:IsOnContract] - GT;(RL)

这运行了几个小时并最终完成,在Neo4j浏览器中出现了一个关系IsOnContract,但是当我尝试用

查询这些关系时
MATCH (a)-[:`IsOnContract`]->(b) RETURN a,b LIMIT 25

(Linkurious说BTW有0关系)

我得到零行 - 即关系不存在。

我在这里做错了吗?

我还尝试在导入AmRentLine期间创建关系,但效果相同。

问候 科林

1 个答案:

答案 0 :(得分:0)

科林,

我认为你遇到了内存问题。 和跨产品。

那么你可以在neo4j-wrapper.conf中提升你的记忆力吗?

创建索引:AmRentLine(Itemid); 创建索引:Itemtab(Itemid);

否则尝试执行以下操作:

match (rl:AmRentLine)
MATCH (it:Itemtab {ItemId:rl.ItemId})
merge (it)-[:IsOnContract]->(rl)
remove rl.ItemId
remove it.ItemId

或者你可以将你的工作分成更小的部分

match (rl:AmRentLine),(it:Itemtab) 
with rl,it
skip 200000 limit 100000
where rl.Itemid = it.Itemid 
merge (it)-[:IsOnContract]->(rl)