将neo4j -> 连接mysql
CALL apoc.load.jdbc()
创建节点
ranker代表课程id,name代表该学科名称
create (n:course { name: '数字电路与逻辑设计',ranker:'4' }) return n;
建立课程下面的一级目录—既每章的标题
首先是创建node:
CALL apoc.load.jdbc( 'jdbc:mysql://10.112.48.129/knowledgePoint_PPT?
user=*填写你的账号*&password=*填写你的密码*&useUnicode=true&characterEncoding=utf8', 'select * from DCDku' )
YIELD row
CREATE(n:KnowledgeUnit { id:row.id, name:row.name, ranker:row.ranker, level:row.level, url:row.url})
接着是创建relation:
CALL apoc.load.jdbc( 'jdbc:mysql://10.112.48.129/knowledgePoint_PPT?
user=*填写你的账号*&password=*填写你的密码*&useUnicode=true&characterEncoding=utf8', 'select * from DCDku' )
YIELD row
merge (p1:course{name:'数字电路与逻辑设计'})
merge (p2:KnowledgeUnit{ranker:row.ranker})
WITH * create (p1)-[r:hasPartOf]->(p2)
效果如下:
接着连接二级目录:
首先是创建node:
CALL apoc.load.jdbc( 'jdbc:mysql://10.112.48.129/knowledgePoint_PPT?
user=*填写你的账号*&password=*填写你的密码*&useUnicode=true&characterEncoding=utf8', 'select * from DCDkc' ) YIELD row
CREATE(n:KnowledgeChapter { start:row.start, name:row.name, ranker:row.ranker, level:row.level, url:row.url})
接着是创建relation:
CALL apoc.load.jdbc(
'jdbc:mysql://10.112.48.129/knowledgePoint_PPT?user=*填写你的账号*&password=*填写你的密码*&useUnicode=true&characterEncoding=utf8',
'select * from DCDkc'
) YIELD row
merge (p1:KnowledgeUnit{ranker:row.start})
merge (p2:KnowledgeChapter{ranker:row.ranker})
WITH * create (p1)-[r:hasPartOf]->(p2)
额,显然每个二级目录多了一倍,多的几个空白的没有name,我怀疑多建了,所以删除
删除语法:
delete 节点:
Match (n) where n.ranker Contains 'XXX' delete n
delete 节点和关系:
MATCH ()-[r]-(n) where n.ranker Contains 'xxx' DELETE n,r
只要节点连其他的节点,则必须用第二个,否则报错
发现雀食多了差不多一倍的节点
经过重新改正,效果如下:
emmm,舒服了…
接着连接三级目录:
首先是创建node:
CALL apoc.load.jdbc( 'jdbc:mysql://10.112.48.129/knowledgePoint_PPT?user=*填写你的账号*&password=*填写你的密码*&useUnicode=true&characterEncoding=utf8', 'select * from DCDkb' ) YIELD row
CREATE(n:KnowledgeBlock { start:row.start, name:row.name, ranker:row.ranker, level:row.level, url:row.url})
接着是创建relation:
CALL apoc.load.jdbc(
'jdbc:mysql://10.112.48.129/knowledgePoint_PPT?user=*填写你的账号*&password=*填写你的密码*&useUnicode=true&characterEncoding=utf8',,
'select * from DCDkb'
) YIELD row
merge (p1:KnowledgeChapter{ranker:row.start})
merge (p2:KnowledgeBlock{ranker:row.ranker})
WITH * create (p1)-[r:hasPartOf]->(p2)
效果:
最后导入四级细分知识点
CALL apoc.load.jdbc( 'jdbc:mysql://10.112.48.129/knowledgePoint_PPT?user=。。。&password=。。。&useUnicode=true&characterEncoding=utf8', 'select * from 数字电路与逻辑设计_kp' )
YIELD row
CREATE(n:AlignmentObject
{ name:row.name, ranker1:row.ranker1, ranker2:row.ranker2, level:row.level, url:row.url, 英文知识点:row.英文知识点,
description_wikiE:row.description_wikiE, description_wikiC:row.description_wikiC, description_baidu:row.description_baidu})
CALL apoc.load.jdbc(
'jdbc:mysql://10.112.48.129/knowledgePoint_PPT?user=。。。&password=。。。&useUnicode=true&characterEncoding=utf8',
'select * from 数字电路与逻辑设计_kp'
) YIELD row
match (p1:KnowledgeBlock) where p1.ranker = row.ranker1
match (p2:AlignmentObject) where p2.ranker2 = row.ranker2
WITH * create (p1)-[r:hasPartOf]->(p2)
最终效果: