Neo4j的设计动机是为了更好地,更高效地描述实体之间的关系。在现实生活中,每一个实体都于周围的其他实体有着千丝万缕的关系,这些关系里面所存储的信息甚至要大于身体本身的属性。然后传统的关系型数据库更注重刻画实体内部的属性,实体与实体之间的关系通常都是利用外键来实现。所以在求解关系的时候通常需要join操作,而join操作通常又是耗时的。图数据库为重点描述数据之间关系的数据库应运而生,成为了NoSQL中非常重要的一部分。而Neo4j正是图数据库中最为优秀的之一。
特点:
Neo4j支持索引,其内部实际上通过Lucene实现。
Neo4j完整支持事务,即满足ACID性质。
免索引邻接,用来保证关系查询的速度。
图算法。Neo4j实现的三种图算法:最短路径(最少数目的关系)、Dijkstra算法(解决有向图中任意两个顶点之间的最短路径问题)以及A*算法(是解决静态路网中求解最短路最有效的方法)。
多个Neo4J结点可以组成neo4j的Master-Slave集群
两个基本元素,节点和关系。节点有标签和任意多个属性。关系,又叫图论里面的边,有类型和属性。Neo4j关系被分为两种主要类型,单向关系和双向关系。
Neo4j使用
一.基本的增删改查
创建一个节点:CREATE (n:Person{name:'Andres'});
创建一个边:CREATE(a)-[r:Follow]->(b);
查询最短路径:MATCH(ms:Person{name:'Node A'}),(cs:Person{name:'Node B'}),p=shortestPath((ms)-[r:Follow]-(cs))RETURNp;
查询两个节点之间的关系:MATCH (a:Person{name:'Node A'})-[r]->(b:Person{name:'Node B'}) RETURNtype(r);
创建索引的语法:create index on : customer (name)
二.常用的Neo4j CQL命令如下:
S.No.CQL命令/条用法
1.CREATE 创建创建节点,关系和属性
2.MATCH 匹配检索有关节点,关系和属性数据
3.RETURN 返回返回查询结果
4.WHERE 哪里提供条件过滤检索数据
5.DELETE 删除删除节点和关系
6.REMOVE 移除删除节点和关系的属性
7.ORDER BY以…排序排序检索数据
8.SET 组添加或更新标签
三.以下是常用的Neo4j CQL函数:
S.No.定制列表功能用法
1.String 字符串它们用于使用String字面量。
2.Aggregation 聚合它们用于对CQL查询结果执行一些聚合操作。
3.Relationship 关系他们用于获取关系的细节,如startnode,endnode等。
参考链接,侵删:
https://blog.csdn.net/weixin_34314962/article/details/89655551
https://blog.csdn.net/qq_41977838/article/details/123563005
https://blog.csdn.net/Dream_bin/article/details/104470275/
https://zhuanlan.zhihu.com/p/88745411?utm_source=wechat_session
网友评论