此示例演示如何使用Neo4j®的MATLAB®接口搜索社交社区,以找到人与人之间的最短路径。假设您拥有存储在Neo4j数据库中的图形数据,该数据库表示一个社交社区。这个数据库有七个节点和八个关系。每个节点只有一个唯一的属性键名称
值的范围为用户1
通过用户7
.每个关系都有类型知道
.
寻找两条道路之间的最短路径用户1
和用户7
,使用MATLAB接口连接Neo4j和有向图
有关Neo4j的MATLAB接口的详细信息,请参见Neo4j数据库接口的图形数据库工作流.
本地计算机承载具有端口号的Neo4j数据库7474
,用户名neo4j
,以及密码matlab
. 有关数据库中数据的可视化表示,请参见此图。
创建Neo4j连接对象neo4jconn
使用URLhttp://localhost:7474/db/data
,用户名neo4j
,以及密码matlab
.
网址='http://localhost:7474/db/data'; 用户名=“neo4j”; 密码=“matlab”;neo4jconn=neo4j(url、用户名、密码);
检查消息
Neo4j连接对象的属性neo4jconn
. 空白消息
属性表示成功的连接。
neo4jconn.Message
ans=[]
找到所有的人
节点以及与每个节点关联的所有关系人
节点使用搜索图
.
社交图数据=搜索图(neo4jconn{“人”})
社会图形数据=带字段的结构:节点:[7×3表]关系:[8×5表]
使用表格社交图数据节点
,访问名称
属性中显示的每个节点野田
表的变量。
分配表格社交图数据节点
到不稳定
.
nodestable=social_graphdata.Nodes
不稳定=7×3表这两个国家的点头行为是一个点头行为——一个点头行为——一个点头行为——一个点头行为——一个点头行为——一个点头行为——一个点头行为——一个点头行为——一个节点——一个点头行为——一个点头行为——一个点头行为——一个点头行为——一个点头行为——一个点头行为——一个UU卢卢卢卢卢UUUUUUUUUUUUU卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢[1x1 database.neo4j.http.Neo4jNode]3'Person'[1×1 struct][1x1 database.neo4j.http.Neo4jNode]4'Person'[1×1结构][1x1数据库.neo4j.http.Neo4jNode]5'人'[1×1结构][1x1数据库.neo4j.http.Neo4jNode]9'人'[1×1结构][1x1数据库.neo4j.http.Neo4jNode]
为表中的每一行指定行名不稳定
到船名
.
rownames=nodestable.Properties.rownames
船名=7×1单元阵列{'0'} {'1'} {'2'} {'3'} {'4'} {'5'} {'9'}
访问野田
可变的不稳定
每行。野田
包含一个结构数组。
nodedata=[nodestable.nodedata{rownames}]
野田=带字段的1×7结构数组:名称
取回名称
字段,索引到数组中。节点名称
是包含节点名称的字符向量的单元格数组。
节点名称={nodedata(:).name}
节点名称=1×7单元阵列{'User1'}{'User3'}{'User2'}{'User4'}{'User5'}{'User6'}{'User7'}
创建有向图
对象社会关系图
使用Neo4Jstruct2有向图
函数中存储图形数据社会图形数据
以及存储在中的节点名称节点名称
.
社会图=NEO4JStruct2有向图(社会图数据,“NodeNames”,节点名称)
社交图=具有以下属性的有向图:边:[8×3表]节点:[7×3表]
要查看图形的视觉表示,请创建一个显示社会关系图
.
绘图(社会曲线图),“EdgeLabel”,社会关系(图.边.关系类型)
找出两条路之间的最短路径用户1
和用户7
使用最短路径
.
[用户1到用户7,距离]=最短路径(社交图,“用户1”,“User7”)
用户1到用户7=1×5单元阵列{'User1'}{'User3'}{'User4'}{'User6'}{'User7'}
距离=4
关闭(neo4jconn)