繁体   English   中英

Neo4j关系创建

[英]Neo4j relationship creation

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

嗨,我是Neo4j的新手,一直在尝试加载一些数据和关系,但遇到了麻烦。 我已经使用load CSV命令加载了680,000个节点,效果很好。

使用csvLine创建(p:AmRentLine {Rentid:csvLine.Rentid,Itemid:csvLine.Itemid,名称: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

然后我试图建立关系

匹配(rl:AmRentLine),(it:Itemtab)其中rl.Itemid = it.Itemid合并(it)-[:IsOnContract]->(rl)

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

MATCH (a)-[:`IsOnContract`]->(b) RETURN a,b LIMIT 25

(Linkurious说有0个关系BTW)

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

我在这里做错什么了吗?

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

问候科林

科林

我认为您遇到了记忆问题。 和交叉产品。

因此,您也许可以一次在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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM