我是 Neo4j 的新手,我的脚还是湿的。我有一个关于创建特定类型关系的问题。
我有 2 个文件:
文件 1 有文本数据和一个 ID 字段。文件 2 有 3 个字段 - 一个关键字字段,它是从前一个文件的文本数据中提取的文本/关键字,一个称为文本 ID 的 ID,它引用并与前一个文件中的文本 ID 相同,以及一个 ID对于关键字本身。
我创建了 2 个节点,一个具有 Text ID 和 text 属性的 Text 节点,以及一个只有属性“keyword”的 Keyword 节点。无论如何,我是否可以在这两个节点之间创建关系,我将在两个文件中以文本 ID 为基础,并创建一个关系,即 k.keyword - [:IS_IN] - t.text?
这是我到目前为止尝试运行的,但我不确定下一步该怎么做:
LOAD CSV WITH HEADERS FROM "file:///text.csv" AS row1
LOAD CSV WITH HEADERS FROM "file:///keyword.csv" AS row2
MATCH(t:Text {text_id:row1.text_id}), (k:Keyword {keyword:row2.Keyword})
//The part which I don't know what to do
MERGE (k)-[:IS_IN]->(t)
答案 0 :(得分:1)
分别加载每个 csv。
第一次运行创建文本节点。示例:
LOAD CSV WITH HEADERS FROM "file:///text.csv" AS row1
MERGE (t:Text {text_id:row1.text_id})
SET t.text=row1.text
第二次运行创建关键字,通过 id 查找文本节点并创建关系。示例:
LOAD CSV WITH HEADERS FROM "file:///keyword.csv" AS row
MERGE (k:Keyword {keyword:row.Keyword})
WITH row,k
MATCH (t:Text {text_id:row.text_id}),
MERGE (k)-[:IS_IN]->(t)