Neo4j 从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

我有两个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{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,按名称匹配行上的每个节点并合并关系。

谢谢。我也做了同样的事,后来我意识到了这一点。