Neo4j 从csv创建图形时排除某些节点
我有两个csv文件,一个包含源节点、目标节点格式的两列,另一个包含节点列表。现在,我正在尝试使用第一个文件创建一个图形,其中包含Neo4j 从csv创建图形时排除某些节点,neo4j,cypher,Neo4j,Cypher,我有两个csv文件,一个包含源节点、目标节点格式的两列,另一个包含节点列表。现在,我正在尝试使用第一个文件创建一个图形,其中包含 load csv with headers from "file:///C:/Users/neo4j_workspace/new_graph_db/import/sample_edges.csv" as table merge (a:Node{name:table.destination_node }) with table, a merge (b:Node{n
load csv with headers from "file:///C:/Users/neo4j_workspace/new_graph_db/import/sample_edges.csv" as table
merge (a:Node{name:table.destination_node })
with table, a
merge (b:Node{name:table.source_node})
with a, b
merge (a)-[:relates]->(b)
但是我想创建节点以及节点之间的关系,其中源节点和目标节点都位于第二个csv列中。我试着用WHERE作为
load csv with headers from "file:///C:/Users/neo4j_workspace/new_graph_db/import/sample_list.csv" as jobs_table
with list
load csv with headers from "file:///C:/Users/neo4j_workspace/new_graph_db/import/sample_edges.csv" as table
with table, list
merge(a:Node{name:table.destination_node })
with table, list, a
merge (b:Node{name:table.source_node})
with list, a, b
merge(a)-[:relates]->(b)
where (a and b in list.nodenames)
但是我知道where不能与合并一起使用。我知道这个案例,但我无法使用它形成一个正确的查询。My db开始时是空的。使用您尝试的方法,查询将在第一个CSV的所有行和第二个CSV的所有行之间创建笛卡尔乘积。这种方法将表现不佳
相反,我建议单独处理每个文件,首先从第一个CSV创建所有节点,然后(在:Node(name)上添加索引后,如果还没有索引),处理第二个CSV,按名称匹配行上的每个节点并合并关系。谢谢。我也做了同样的事,后来我意识到了这一点。