如何在neo4j中建立两个不同列之间的关系?

时间:2018-10-02 03:10:08

标签: neo4j cypher

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

我尝试过Neo4j Cypher - Creating relationship using two CSV files这个过程,但没有得到结果。

我的数据如下:

1 个答案:

答案 0 :(得分:0)

以下是如何以Question关系连接每个AnswerHAS_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)创建一个index

[UPDATE 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)创建一个index