主要内容

在社会社区找到人们之间的最短路径

此示例显示如何使用MATLAB®界面搜索社交社区以找到人与人之间的最短路径。假设您具有存储在代表社交社区的Neo4j数据库上的图表数据。该数据库有七个节点和八个关系。每个节点只有一个唯一的属性键姓名价值来自User1.通过User7。每个关系都有类型知道

找到最短的路径User1.User7,使用MATLAB接口的Neo4j和dig目的。有关MATLAB接口到NEO4J的详细信息,请参阅Neo4j数据库接口的图表数据库工作流程

本地计算机将Neo4j数据库带到端口号7474.、用户名neo4j.和密码matlab。有关数据库中数据的可视化表示,请参阅此图。

连接到Neo4j数据库

创建neo4j连接对象neo4jconn使用URL.http:// localhost:7474 / db / data、用户名neo4j.和密码matlab

url ='http:// localhost:7474 / db / data';用户名='neo4j';密码='matlab';neo4jconn = neo4j (url、用户名、密码);

检查消息neo4j连接对象的属性neo4jconn。空白消息属性表示连接成功。

neo4jconn.message.
ans = []

搜索整个图形

找到所有的节点和每个关联的所有关系节点使用SearchGread.

social_graphdata = searchGraph (neo4jconn, {“人”})
social_graphdata =结构与字段:节点:[7×3表]关系:[8×5表]

将图形数据转换为定向图

使用表格social_graphdata.nodes.,访问姓名显示在每个节点的属性Nodedata.桌子的变量。

分配表social_graphdata.nodes.nodestable

nodestable = socum_graphdata.nodes.
nodestable =7×3表NodeLabels Nodedata NodeObject __________ ________________________ 0'个人'[1×1 struct] [1x1 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数据库。neo4j.http.neo4jnode] 5'person'[1×1 struct] [1x1 database.neo4j.http.neo4jnode] 9'person'[1×1 struct] [1x1 database.neo4j.http.neo4jnode]

为表中的每一行分配行名称nodestablerownames.

Rownames = nodeStable.properties.roplownames.rownames.
rownames =7×1个单元阵列{'0'} {'1'} {'2'} {'3'} {'3'} {'4'} {'5'} {'5'} {'9'}

访问Nodedata.变量从nodestable每行。Nodedata.包含一系列结构。

(nodestable nodedata =。NodeData {rownames}]
nodedata =1×7结构数组与字段:姓名

检索姓名从每个结构,索引到阵列的字段。Nodenames.是包含节点名称的字符向量的单元格数组。

节点名= {nodedata (:) . name}
Nodenames =.1×7单元阵列{User1的}{‘User3} {User2的}{‘User4}{‘User5}{‘User6} {' User7 '}

创造dig目的Social_Graph..使用neo4jstruct2digraph.函数中存储图形数据social_graphdata.和存储在的节点名称Nodenames.

social_graph = neo4jstruct2digraph(socum_graphdata,'nodenames',Nodenames)
social_graph = diggraph with properties: Edges: [8×3 table] Nodes: [7×3 table]

要查看图形的可视表示,请创建一个显示的图形Social_Graph..

绘图(Social_Graph,'Edgelabel',seamial_graph.edges.relationtype)

找到最短的路径

找到最短的路径User1.User7使用最短路径

[user1_to_user7,距离]= shortestpath (social_graph,'user1''user7'
user1_to_user7 =1×5个单元阵列{'user1'} {'user3'} {'user4'} {'user6'} {'user7'}
距离= 4.

关闭数据库连接

关上(neo4jconn)

也可以看看

|||

相关例子

更多关于