简体   繁体   English

加快 Neo4j 关系创建

[英]Speed up Neo4j relationship creation

I have a CSV file with 1 million rows and 3 columns (NODE_ID_1, PROPERTY_COLUMN, NODE_ID_2).我有一个 CSV 文件,它有 100 万行和 3 列(NODE_ID_1、PROPERTY_COLUMN、NODE_ID_2)。
I also have an already existing Neo4j database containing Node label.我还有一个已经存在的 Neo4j 数据库,其中包含节点label。 I should create the relationship RELATED_TO between nodes.我应该在节点之间创建关系RELATED_TO I use the following cypher query to create the relationship between nodes but it is too cumbersome (it takes more than a day to complete the rel creation).我使用下面的cypher查询来创建节点之间的关系但是太麻烦了(完成rel创建需要一天多的时间)。 Do you have some tips to quickly generate the relationship?你有一些快速建立关系的技巧吗?


         CALL apoc.periodic.iterate(
        "LOAD CSV WITH HEADERS FROM $url AS row 
         WITH row {.*, PROPERTY: toFloat(row.PROPERTY_COLUMN)}
         RETURN row",
        "MATCH (src:Node {node_id : row['NODE_ID_1']}), (dst:Node {node_id : row['NODE_ID_2']}) 
         MERGE (src)-[r:RELATED_TO]-(dst)
         SET r += {property_column: row['PROPERTY_COLUMN']}
        ",
        {batchSize: 1000, batchMode: "BATCH", parallel:false, params: {url: 'file:///path_to_file'} })

Do you have an index on:Node(node_id)?你有一个索引:Node(node_id)吗? You NEED this for your MATCH operations to be performant.你需要这个才能让你的 MATCH 操作高效。

https://neo4j.com/docs/cypher-manual/current/administration/indexes-for-search-performance/ https://neo4j.com/docs/cypher-manual/current/administration/indexes-for-search-performance/

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

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