首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4J批量创建关系

Neo4J批量创建关系
EN

Stack Overflow用户
提问于 2017-02-09 11:40:08
回答 1查看 1.7K关注 0票数 0

是CSV加速创建大量关系的唯一选择吗?

我在网上读了很多文章,都是关于CSV的。CSV肯定会提高我的性能(你能想象它有多大吗?),但我不确定我是否能用CSV格式存储数据。还有其他选择吗?我将从使用Neo4J 3 BOLT协议得到多少?

我的程序

我使用的是Neo4j 2.1.7。我试着一次建立大约50000种关系。我执行批量大小为10000的查询,插入全部50000需要大约120-140秒的

我的查询如下:

代码语言:javascript
复制
MATCH (n),(m) 
WHERE id(n)=5948 and id(m)=8114 
CREATE (n)-[r:MY_REL {
    ID:"4611686018427387904",
    TYPE: "MY_REL_1"
    PROPERTY_1:"some_data_1",
    PROPERTY_2:"some_data_2",
    .........................
    PROPERTY_14:"some_data_14"
}]->(m) 
RETURN id(n),id(m),r
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-09 12:09:49

因为它是用文档编写的

Cypher支持使用参数查询。这意味着开发人员不必求助于字符串构建来创建查询。除此之外,它还使执行计划的缓存对于Cypher来说容易得多。

因此,您需要将数据打包为参数并使用密码查询传递:

代码语言:javascript
复制
UNWIND {rows} as row
MATCH (n),(m) 
WHERE id(n)=row.nid and id(m)=row.mid
CREATE (n)-[r:MY_REL {
    ID:row.relId,
    TYPE:row.relType,
    PROPERTY_1:row.someData_1,
    PROPERTY_2:row.someData_2,
    .........................
    PROPERTY_14:row.someData_14
}]->(m) 
RETURN id(n),id(m),r
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42135766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档