公司最近想要做一个知识图谱的功能,有节点,关系,其实这个从数据结构上来说就是图,而我们就需要一个支持图结构的数据库。 先上一个图看一下吧
Neo4j的命令使用
节点:
查询所有节点:
MATCH (n) RETURN n
删除所有节点:
MATCH (n) detach delete n
根据id查询节点:
MATCH (n) WHERE id(n)=251 RETURN n
模糊查询:
MATCH (n) WHERE id(n)<>5 and n.name =~ '.*安.*' RETURN n
添加节点:
CREATE (n:作家 {name:'鲁迅'}) RETURN n;
根据节点id 删除节点及其所有关系:
MATCH (n) WHERE id(n)=251 detach delete n
修改节点类型和节点属性:
match (b) where id(b)= 9 set b:作家, b.name = 'Kevinnn' return b
关系:
根据类型获取节点的所有关系:
MATCH (c:作家) WITH c OPTIONAL MATCH (c)-[r]-() RETURN c, r
添加关系:
match (a),(b) where id(a)=9 and id(b)=5 merge (a) -[:test] -> (b)
根据id删除某个关系:
match(a)-[r]-(b) where id(r)=1103 delete r
根据id查找从该id出发的所有关系
MATCH (c)-[r]->(d) where id(c) = 5 RETURN r
删除从 c 开始的所有关系:
MATCH (c)-[r]->(d) where id(c) = 9 delete r