技术开发 频道

图形数据库初探之neo4j的简单应用

  【IT168 技术】本文我们将分别从什么是neo4j、neo4j作用和neo4j用法几个方面来简单介绍图数据库neo4j的知识,希望能够给您带来收获。

  1、什么是neo4j

  neo4j是一种图数据库,同时它也是一种嵌入式数据库。它对图数据是以节点和边(关系)模式进行存储。每个节点可以包含一系列信息,通过Node类里面的setProperty()方法对节点信息进行存储,Node也可以使用createRelationshipTo()方法实现个节点和其他节点的联系,并且该方法返回的是一个Relationship对象,我们也可以对Relationship设置属性,也就是节点和节点之间的关系属性。什么叫关系属性?例如:person1àperson2,person1和person2的关系可以是朋友也可以是同学还可以是亲人,这里的朋友、同学、亲人就是这里的Relationship的属性。那么关系属性就是描叙两个节点之间的关系类型。这就方便在对节点进行查找的时候对节点进行过滤。如下图:

图形数据库初探之neo4j的简单应用

  2、neo4j作用

  上面对neo4j进行了简单的介绍,可知neo4j是一种对图数据进行存储,是一种嵌入式数据库。它可以将复杂的图数据以节点和边形式存储。例如:在我们现实社会中人与人之间的关系,这就是一个复杂的图,朋友也可以是多种多样的,怎样描叙这样复杂的图呢?Neo4j提供了比较简单的描叙方式。如图:

图形数据库初探之neo4j的简单应用

  就上面的图可以根据neo4j提供的方法获取第一层朋友和第二层朋友: TraversalDescriptiontd = Traversal.description().breadthFirst().relationships(RelTypes.KNOWS, Direction.OUTGOING).filter(Traversal.returnAllButStartNode() ); 上面的代码所执行的是:同个一个事务获取一个事务描叙,然后根据这个事务描叙在一存储的图中过滤出我们想要的节点,这个事务描叙第一个是进行广度优先搜索(breadthFirst),接下类对节点关系进行过滤。Direction是指定关系的方向,RelTypes就是关系的类型。这样就可以获得相应的结果。

  3、neo4j用法简单介绍

  此处就neo4j的一个例子进行讲解(如图):

图形数据库初探之neo4j的简单应用

  上面图是一个部门结构图,这个在我们现实生活中也是比较常见的。如:我们学校,它就是一个由各个部门构成的。如何对这种图进行查找,以获得我们想要的信息呢?

  1)、获得各个部门的名:

TraversalDescription td =Traversal.description().breadthFirst().relationships(RoleRels.ROOT, Direction.INCOMING).relationships(RoleRels.PART_OF, Direction.INCOMING).filter(Traversal.returnAllButStartNode());

  2)、获得所有的admin

TraversalDescription td =Traversal.description().breadthFirst().relationships(RoleRels.PART_OF, Direction.INCOMING).relationships(RoleRels.MEMBER_OF, Direction.INCOMING).filter(Traversal.returnAllButStartNode() );

  3)、更具个人信息获得他所在的所有部门

Node jale = getUserByName( "Jale" );   TraversalDescription td = Traversal.description().depthFirst().relationships(RoleRels.MEMBER_OF, Direction.OUTGOING).relationships(RoleRels.PART_OF, Direction.OUTGOING).filter(Traversal.returnAllButStartNode() );

  附录:

  neo4j还提供了两种遍历的方式:一种是深度搜索,第二种是广度搜索。也提供了两种搜索算法,一种是A*算法,第二种是dijkstra算法。提高了编程人员的工作效率。同时neo4j也有简历索引的功能,方便了多节点的查找。

  关于neo4j图数据库的知识就介绍到这里,希望能够带给您收获。

0
相关文章