探索图数据库结构
这个例子展示了如何使用MATLAB®接口到Neo4j®遍历图形并探索其结构。关于Neo4j的MATLAB接口,请参见Neo4j数据库接口的图形数据库工作流.
假设您在Neo4j数据库中存储了表示社会邻居的图形数据。这个数据库有7个节点和8个关系。每个节点只有一个唯一的属性键的名字
取值范围为User1
通过User7
.每个关系都有类型知道
.
本地机器承载带有端口号的Neo4j数据库7474
,用户名neo4j
,和密码matlab
.该图提供了数据库中数据的可视化表示。
连接到Neo4j数据库
创建一个Neo4j连接对象neo4jconn
使用URLhttp://localhost:7474/db/data
,用户名neo4j
,和密码matlab
.
url =“http://localhost: 7474 / db /数据”;用户名=“neo4j”;密码=matlab的;Neo4jconn = neo4j(url,用户名,密码);
检查消息
属性的Neo4j连接对象neo4jconn
.空白的消息
属性指示连接成功。
neo4jconn。消息
Ans = []
探索整个图的结构
使用Neo4j连接对象查找Neo4j数据库中的所有节点标签neo4jconn
.
nlabels = nodeLabels(neo4jconn)
nlabels =1×1单元格数组{'人'}
在Neo4j数据库中找到所有关系类型。
reltypes = relationTypes(neo4jconn)
reltypes =1×1单元格数组{'知道'}
在Neo4j数据库中找到属性键。
propkeys = propertyKeys(neo4jconn)
propkeys =15×1单元格数组{'名字'}{“财产”}{“标题”}{“描述”}{‘EndNodes}{“位置”}{‘EndDate}{'地址'}{‘项目’}{“部门”}{' StartDate可以'}{“标题”}{‘日期’}{“重量”}{“名字”}
搜索节点
搜索带有该节点标签的所有节点人
.的nodesinfo
参数包含节点标签、节点数据和Neo4jNode
对象。
nlabel =“人”;nodesinfo = searchNode(neo4jconn,nlabel)
nodesinfo =7×3表NodeLabels NodeData NodeObject __________ ____________ ___________________________________ 0“人”[1×1 struct] [1 x1 database.neo4j.http。Neo4jNode] 1 'Person' [1×1 struct] [1x1 database.neo4j.http。Neo4jNode] 2 'Person' [1×1 struct] [1x1 database.neo4j.http。Neo4jNode] 3 'Person' [1×1 struct] [1x1 database.neo4j.http。Neo4jNode] 4 'Person' [1×1 struct] [1x1 database.neo4j.http。Neo4jNode] 5 'Person' [1×1 struct] [1x1 database.neo4j.http。Neo4jNode] 9 'Person' [1×1 struct] [1x1 database.neo4j.http.Neo4jNode]
搜索带有节点标识符的节点2
.的nodeinfo
参数Output包含节点标识符、节点数据和具有节点标识符的节点的节点标签2
.
Nodeid = 2;nodeinfo = searchNodeByID(neo4jconn,nodeid)
nodeinfo = Neo4jNode属性:NodeID: 2 NodeData: [1×1 struct] NodeLabels: 'Person'
寻找人际关系
搜索属于该节点的传入关系类型nodeinfo
.
nodereltypes = nodeRelationTypes(nodeinfo,“在”)
nodereltypes =1×1单元格数组{'知道'}
搜索属于该节点的所有传入关系的程度nodeinfo
.
nodeinfo = nodeinfo“在”)
度=带字段的结构:知道:1
搜索与节点标识符的关系4
.
Relationid = 4;relationinfo = searchRelationByID(neo4jconn,relationid)
relationinfo =带有属性的Neo4jRelation: RelationID: 4 RelationData: [1×1 struct] StartNodeID: 3 RelationType: 'knows' EndNodeID: 5
搜索属于该节点的所有传入关系nodeinfo
.的relinfo
输出参数包含关于开始节点和结束节点的数据以及来自起源节点的所有匹配关系。
relinfo = searchRelation(neo4jconn,nodeinfo,“在”)
relinfo =带字段的结构:节点数:[2×3 table]关联关系:[1×5 table]
检索整个图
使用节点标签检索整个图nlabels
.
graphinfo = searchGraph(neo4jconn,nlabels)
graphinfo =带字段的结构:节点:[7×3 table]关系:[8×5 table]
graphinfo
包含每个匹配关系的所有开始节点和结束节点的节点数据。graphinfo
还包含每个匹配关系的关系数据。
关闭数据库连接
关上(neo4jconn)
另请参阅
neo4j
|nodeLabels
|relationTypes
|propertyKeys
|searchNodeByID
|searchNode
|nodeRelationTypes
|nodeDegree
|searchRelation
|searchRelationByID