主要内容

在社交社区中查找人与人之间的最短路径

此示例演示如何使用Neo4j®的MATLAB®接口搜索社交社区,以找到人与人之间的最短路径。假设您拥有存储在Neo4j数据库中的图形数据,该数据库表示一个社交社区。这个数据库有七个节点和八个关系。每个节点只有一个唯一的属性键名称值的范围为用户1通过用户7.每个关系都有类型知道.

寻找两条道路之间的最短路径用户1用户7,使用MATLAB接口连接Neo4j和有向图有关Neo4j的MATLAB接口的详细信息,请参见Neo4j数据库接口的图形数据库工作流.

本地计算机承载具有端口号的Neo4j数据库7474,用户名neo4j,以及密码matlab. 有关数据库中数据的可视化表示,请参见此图。

连接到Neo4j数据库

创建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)

另见

|||

相关实例

更多关于