主要内容

确定网络中服务的依赖关系

此示例显示如何使用MATLAB®接口到NEO4J®在网络中的服务中分析依赖关系。假设您具有存储在Neo4J®数据库上的图数据,该数据代表网络。该数据库有七个节点和七个关系。每个节点只有一个唯一的属性键姓名有价值服务1通过服务7..每个关系都有类型取决于

要查找每个服务取决于的服务数,请使用MATLAB®接口到NEO4J®和dig对象。关于Neo4j®的MATLAB®接口的详细信息,请参见Neo4j数据库接口的图表数据库工作流程

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

连接到Neo4j®数据库

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

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

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

neo4jconnmessage.
ans = []

检索整个图

检索类型的所有关系取决于以及与每个关系相关联的所有节点。

network_graphdata = searchgraph(neo4jconn,{'取决于'})
network_graphdata =结构与字段:节点:[7×3表]关系:[7×5表]

将图形数据转换为定向图

使用表格network_graphdata。节点,访问姓名出现在的每个节点的属性Nodedata.桌子的变量。

分配表network_graphdata。节点nodestable

nodeStable = network_graphdata.nodes.nodes.
nodestable =7×3表NodeLabels Nodedata nodeObject __________ _____________________________________________________[1×1 struct] [1x1 database.neo4j.http.neo4jnode] 2'服务'[1×1 struct] [1x1 database.neo4j.http.neo4jnode] 3'服务'[1×1 struct] [1x1数据库。neo4j.http.neo4jnode] 5'服务'[1×1 struct] [1x1 database.neo4j.http.neo4jode] 1'服务'[1×1 struct] [1x1 database.neo4j.http.neo4jnode]

为每行分配行名称rownames.

rownames = nodeestable.properties.roply.rownames.
rownames =7×1个单元阵列{'6'} {'0'} {'4'} {'2'} {'3'} {'3'} {'5'} {'5'} {'1'}

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

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

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

节点名= {nodedata (:) . name}
Nodenames =.1×7单元阵列{' Service7}{‘价格’}{‘Service1}{‘Service3}{”生成“Service2}{‘Service4} {' Service5 '}

创造dig目的Network_Graph..使用neo4jstruct2digraph.功能和图形network_graphdata.

network_graph = neo4jstruct2digraph(network_graphdata,'nodenames',Nodenames)
network_graph =有向图属性:Edges: [7×3 table] Nodes: [7×3 table]

要查看图形的可视化表示,创建显示该图形的图形Network_Graph..

情节(network_graph'Edgelabel',network_graph.edges.relationtype)

查找每个服务的依赖项计数

在图中找到每个服务所依赖的服务数量Network_Graph...通过使用for循环遍历图中的节点,确定每个节点的依赖项计数。要确定依赖项计数,请使用最近功能。

创建表格dependency_count.存储每个服务的依赖服务的计数。按依赖项计数降序排列表中的行。

dependency_count = table;为了i = 1:height(network_graph.Nodes) nodeid = network_graph.Nodes. name (i);nearest_node =最近的(network_graph nodeid,正无穷,'方向'out);nearest_length =长度(nearest_node);dependency_count = [dependency_count;......表(NodeID,最近的_Length,......'variablenames',{“节点”“Dependency_count”}));结尾dependency_count = sortrows(dependency_count,-2)
dependency_count =7×2表Node Dependency_count __________ ________________ 'Service6' 5' Service7' 3' Service4' 2' Service5' 2' Service3' 1' Service2' 1' Service1' 0

查找特定服务的所有依赖项

查找服务的所有服务服务6.取决于图表中Network_Graph..使用最近功能。

disp ('Service6依赖于以下服务:');
Service6取决于以下服务:
最近的(network_graph,'服务6',inf,'方向'out的)
ANS =.5×1单元阵列{'service4'} {'service5'} {'service3'} {'service2'} {'service1'}

关闭数据库连接

关上(neo4jconn)

也可以看看

|||

相关例子

更多关于