我有一个国际象棋锦标赛的简单模型。它有5名玩家互相比赛。该图如下所示:
该图总体上没问题,但进一步检查后,您可以看到
Guy1 与 Guy2
和
Guy4 与 Guy5的两个集合
都有冗余关系。
问题显然出在数据中,其中每个匹配项都有一个无关的补充行(因此从某种意义上说,这是底层 csv 中的数据质量问题):
我可以手动清理这些行,但真正的数据集有数百万行。所以我想知道如何使用 CQL 以两种方式中的任何一种删除这些关系:
1)首先不要阅读额外的关系
2)继续创建额外的关系,但稍后将其删除。
提前感谢您对此的任何建议。
我正在使用的代码是这样的:
/ Here, we load and create nodes
LOAD CSV WITH HEADERS FROM
'file:///.../chess_nodes.csv' AS line
WITH line
MERGE (p:Player {
player_id: line.player_id
})
ON CREATE SET p.name = line.name
ON MATCH SET p.name = line.name
ON CREATE SET p.residence = line.residence
ON MATCH SET p.residence = line.residence
// Here create the edges
LOAD CSV WITH HEADERS FROM
'file:///.../chess_edges.csv' AS line
WITH line
MATCH (p1:Player {player_id: line.player1_id})
WITH p1, line
OPTIONAL MATCH (p2:Player {player_id: line.player2_id})
WITH p1, p2, line
MERGE (p1)-[:VERSUS]->(p2)