一’、nodes_unified.csv和relationships_unified.csv放入 Neo4j 的 import 目录。也就是自己的节点数据和关系数据一般import在C、D盘自己的盘里面的找到neo4j-community-2025.01.0二、清空数据库中已有的旧数据可选 警告执行此操作会永久删除所有数据且不可逆。强烈建议在执行前先备份数据库如果数据库是全新的可以跳过这一步。否则执行MATCH (n) DETACH DELETE n;作用删除所有节点和关系从头开始。三、查看 CSV 文件的结构确认列名节点文件预览LOAD CSV WITH HEADERS FROM file:///nodes_merged.csv AS row RETURN row LIMIT 5;关系文件预览LOAD CSV WITH HEADERS FROM file:///relationships_merged_all.csv AS row RETURN row LIMIT 5;记下列名例如global_id、name、:LABEL、:START_ID、:END_ID、:TYPE等。四、导入节点LOAD CSV WITH HEADERS FROM file:///nodes_merged.csv AS row CREATE (n:MedicalEntity { global_id: row.global_id, code: row.id, name: row.name, original_label: row[:LABEL], category: row.category, description: row.description });解释MedicalEntity是自定义的节点标签可改成你喜欢的名字。列名带冒号如:LABEL需要用方括号访问row[:LABEL]。可以根据需要添加更多属性如findings,for_disease等。执行成功后会出现提示Added 1091 labels, created 1091 nodes。五、创建索引加速查询和关系匹配在唯一标识上创建约束会自动建立索引CREATE CONSTRAINT FOR (n:MedicalEntity) REQUIRE n.global_id IS UNIQUE;六、导入关系LOAD CSV WITH HEADERS FROM file:///relationships_merged_all.csv AS row MATCH (source:MedicalEntity {global_id: row[:START_ID]}) MATCH (target:MedicalEntity {global_id: row[:END_ID]}) CREATE (source)-[:RELATED { type: row[:TYPE], stage: row.stage, outcome: row.outcome }]-(target);解释[:RELATED]是统一的关系类型因为不能动态创建不同类型。原始的关系类型如TREATS、PREVENTS被保存在关系属性type中。可以根据需要添加更多关系属性如description,source等。执行成功后提示Created X relationships。七、验证数据是否正确统计节点数量MATCH (n:MedicalEntity) RETURN count(n);统计关系数量MATCH ()-[r:RELATED]-() RETURN count(r);查看任意一个节点MATCH (n:MedicalEntity) RETURN n LIMIT 1;查看任意一条关系MATCH ()-[r:RELATED]-() RETURN r LIMIT 1;八、简单查询示例在 Neo4j Browser 中体验图谱可视化查看某个中心节点例如N000341的所有邻居图形化展示MATCH (n:MedicalEntity {global_id: N000341})-[r]-(m) RETURN n, r, m LIMIT 50;统计每种关系类型的数量MATCH ()-[r:RELATED]-() RETURN r.type, count(*) ORDER BY count(*) DESC;查找所有“治疗”关系TREATSMATCH (s)-[r:RELATED {type: TREATS}]-(t) RETURN s.name, t.name LIMIT 20;