首页 > 解决方案 > 如何在 neo4j 中的两个不同列之间建立关系?

问题描述

我在 csv 文件中有两列的问题和答案。我如何建立问题和答案之间的关系?

我曾尝试过Neo4j Cypher -在此过程中使用两个 CSV 文件创建关系,但没有得到结果。

我的数据如下所示:

标签: neo4jcypher

解决方案


以下是如何将每个QuestionAnswer节点与HAS_ANSWER关系连接的示例:

LOAD CSV WITH HEADERS FROM "file:///Test.csv" AS row
MERGE (q:Question {text: row.Question})
MERGE (a:Answer {text: row.Answer})
MERGE (q)-[:HAS_ANSWER]->(a)

[更新 1]

这是一个获取Answer特定对象的示例Question

MATCH (q:Question {text: "What is the square root of 4?"})-[:HAS_ANSWER]->(a:Answer)
RETURN q, a;

为了获得更快的结果,您应该:Question(text).

[更新 2] 要获得具有相同答案的所有问题的列表:

MATCH (q:Question)-[:HAS_ANSWER]->(a:Answer {text: "The square roots of 4 are 2 and -2."})
RETURN a, COLLECT(q) AS questions;

为了获得更快的结果,您应该:Answer(text).


推荐阅读