使用Neo4j创建一个简单的股票知识图谱
目录
1、建立股票结点
创建一个节点的Cypher命令
create(Variable:Lable{Key1:Value1, Key2,Value2}) return Variable
eg:
create (n:Stock{name:"安琪酵母", code:"600298",launchDate:date("2000-08-18")}) return n
一次创建多支股票节点的Cypher命令
create (n:Stock{name:"招商银行", code:"600036",launchDate:date("2002-04-09")}),
(:Stock{name:"中科创达", code:"300496",launchDate:date("2015-12-10")}),
(:Stock{name:"华工科技", code:"000988",launchDate:date("2000-06-08")}),
(:Stock{name:"国信证券", code:"002736",launchDate:date("2014-12-29")})
2、建立上海证券交易所和深圳交易所两个节点
create (n:SecuritiesExchange{name:"上海证券交易所"}),(:SecuritiesExchange{name:"深圳证券交易所"}) return n;
3、建立省市地方名称的节点
create (n:Province{name:"湖北"}),(:Province{name:"北京"}),(:Province{name:"广东"}) return n;
4、建立股票和证券交易所关系
创建股票节点"安琪酵母"和和证券交易所节点“上海证券交易所”的关系
MATCH(a:Stock),(b:SecuritiesExchange) WHERE a.name = "安琪酵母" AND b.name = "上海证券交易所" CREATE(a)-[r:Exchange]->(b) RETURN r
5、建立股票和省市名称关系
创建股票节点和省市节点的关系
MATCH(a:Stock),(b:Province) WHERE a.name = "安琪酵母" AND b.name = "湖北" CREATE(a)-[r:Area]->(b) RETURN r
6、查询某支股票的节点
MATCH(a:Stock) WHERE a.name = "安琪酵母" RETURN a
7、查询某个标签的所有节点
MATCH(a:Stock) RETURN a
8、查询两个节点之间的关系
MATCH(a:Stock{name:"安琪酵母"})-[r]->(:Province{name:"湖北"}) RETURN type(r)
9、通过函数type获取某个节点关系的类型
MATCH(:Stock{name:"安琪酵母"})-[r]->() RETURN type(r)
10、删除某支股票的节点
如果该节点存在关系,先删除关系,再删除节点
MATCH(a:Stock) WHERE a.name = "中科创达" DELETE a
11、删除某个标签的节点
如果该节点存在关系,先删除关系,再删除节点
MATCH(n:Stock) DELETE n
12、删除两个节点的关系
删除两个节点之间的关系
MATCH(:Stock{name:"安琪酵母"})-[r]->(:Province{name:"湖北"}) DELETE r
删除某个节点之间的关系
MATCH(:Stock{name:"安琪酵母"})-[r]->() DELETE r
13、删除某个标签的全部关系
MATCH(:Stock)-[r]->() DELETE r
14、增加节点属性
MATCH(a:Stock) WHERE a.name = "中科创达" SET a.abbreviation = "ZKCD" RETURN a
15、删除节点属性
MATCH(a:Stock) WHERE a.name = "中科创达" REMOVE a.abbreviation
参考:
[1]https://www.bilibili.com/video/BV13K4y187b4?spm_id_from=333.999.0.0