Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Neo4J批量创建关系_Java_Neo4j_Cypher - Fatal编程技术网

Java Neo4J批量创建关系

Java Neo4J批量创建关系,java,neo4j,cypher,Java,Neo4j,Cypher,CSV是加快批量关系创建的唯一选项吗? 我在网上读了很多文章,他们都在讲述CSV。CSV肯定会给我带来性能提升(你能想象有多大吗?),但我不确定我是否能以CSV格式存储数据。还有其他选择吗?使用Neo4J 3 BOLT协议我能得到多少 我的节目 我正在使用Neo4j 2.1.7。我试图一次创造大约50000个关系。我批量执行大小为10000的查询,插入所有50000个查询大约需要120-140秒 我的查询如下所示: MATCH (n),(m) WHERE id(n)=5948 and id(m

CSV是加快批量关系创建的唯一选项吗?

我在网上读了很多文章,他们都在讲述CSV。CSV肯定会给我带来性能提升(你能想象有多大吗?),但我不确定我是否能以CSV格式存储数据。还有其他选择吗?使用Neo4J 3 BOLT协议我能得到多少

我的节目 我正在使用Neo4j 2.1.7。我试图一次创造大约50000个关系。我批量执行大小为10000的查询,插入所有50000个查询大约需要120-140秒

我的查询如下所示:

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
正如文件中所述:

Cypher支持使用参数进行查询。这意味着开发人员不需要这样做 必须求助于字符串构建来创建查询。除了 这也使得Cypher更容易缓存执行计划

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

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

多谢各位!我将使用此解决方案测试性能,几分钟后会让您知道hours@By顺便问一下,如果您使用嵌入式服务器,为什么要使用密码?为什么不使用java方式:
graphDb.findNodes
等?我们要用螺栓protocol@VolodymyrBakhmatiuk顺便说一下,如果您需要批量创建关系,我不建议您返回任何内容。或者至少返回已创建关系的数量-
返回计数(r)