Neo4j 从单个csv文件加载节点并创建关系

Neo4j 从单个csv文件加载节点并创建关系,neo4j,cypher,Neo4j,Cypher,我必须加载一个具有id(cui)和疾病名称的CSV文件,其中一些id重复出现,但名称略有不同。我想创建具有唯一id的节点,并为所有其他稍有不同的名称创建节点。具有替代名称的节点将与初始节点具有关系[:HAS_alternative_name] 我有一个查询,它在node属性中附加了可选名称,这次我想通过为每个可选名称创建一个节点来规范化问题 USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM 'file:///Concepts_50000.csv'

我必须加载一个具有id(cui)和疾病名称的CSV文件,其中一些id重复出现,但名称略有不同。我想创建具有唯一id的节点,并为所有其他稍有不同的名称创建节点。具有替代名称的节点将与初始节点具有关系
[:HAS_alternative_name]

我有一个查询,它在node属性中附加了可选名称,这次我想通过为每个可选名称创建一个节点来规范化问题

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM 'file:///Concepts_50000.csv' AS line 
FIELDTERMINATOR '\t'
MERGE (d:Disease{id: line.CUI})
ON CREATE SET 
    d.prefered_name = line.name,
    d.alternative_name = line.name
ON MATCH SET
    d.alternative_name = d.alternative_name+', '+line.name;
最后,我希望有类似的情况,一种疾病有不同的名称节点


这可能会满足您的需求:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM 'file:///input.csv' AS line 
FIELDTERMINATOR '\t'
MERGE (d:Disease {id: line.CUI})
MERGE (n:DiseaseName {name: line.name})
MERGE (d)-[: HAS_ALTERNATIVE_NAME]->(n)
[更新]

为了获得更好的性能,请确保您有:

  • :疾病(id)
  • :疾病名称(名称)

此查询正是我所需要的,但在大量数据中无法执行。有没有其他方法可以实现我的目标,比如使用apoc库?