首页 文章

Neo4j关系创造

提问于
浏览
0

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

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

使用来自“file:/ c:/Import/CSVsForImport/AMRentLine.csv”的头文件的PERICODIC COMMIT LOAD CSV AS csvLine CREATE(p:AmRentLine {Rentid:csvLine.Rentid,Itemid:csvLine.Itemid,Name:csvLine.Name,数量: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

然后我试着 Build 关系

match(rl:AmRentLine),(it:Itemtab)其中rl.Itemid = it.Itemid merge(it) - [:IsOnContract] - >(rl)

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

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

(Linkurious说BTW有0关系)

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

我在这里做错了吗?

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

科林

1 回答

  • 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)
    

相关问题