使用Cypher可视化强连接组件

时间:2016-12-05 09:50:21

标签: apache-spark neo4j cypher strongly-connected-graph neo4j-mazerunner

我已使用neo4j-mazerunner来分析我的图表上的 strong_connected_components 关系。该过程已结束,现在我在节点上获得了 strong_connected_components 属性。

我使用以下查询来获取不同节点的节点行:

MATCH (n) WHERE has(n.strongly_connected_components)
RETURN DISTINCT "node" as element, n.strongly_connected_components
AS strongly_connected_components
LIMIT 25 UNION ALL MATCH ()-[r]-()
WHERE has(r.strongly_connected_components)
RETURN DISTINCT "relationship" AS element, r.strongly_connected_components 
AS strongly_connected_components LIMIT 25

我不确定如何对图表进行加密查询,以便可视化生成的群集。

任何帮助都会被暗示。

3 个答案:

答案 0 :(得分:2)

此查询应返回25个群集,您应该能够将浏览器中的每个群集可视化为强连接节点。该查询假定FOOneo4j-mazerunner在要求其生成strongly_connected_components值时指定的关系。

注意:关闭浏览器的AUTO-COMPLETE功能(在结果窗格的右下角),只能看到每个群集中节点之间的FOO关系:

MATCH p=(n1)-[:FOO]->()
RETURN n1.strongly_connected_components AS clusterId, COLLECT(p) AS paths
LIMIT 25;

由于neo4j-mazerunner为同一群集中的所有节点分配了相同的strongly_connected_components值,因此此查询只汇总具有相同strongly_connected_components值的所有路径(标识为clusterId })。

答案 1 :(得分:1)

您可以使用以下方式查询特定ID:

match (n2 {strongly_connected_components:NODE_ID_HERE})-[r:NEXT]->(n) return n,n2 LIMIT 50

答案 2 :(得分:0)

我可能在这里误解了这个问题,但是这可以让你更全面地了解你的强连接节点:

MATCH (n) WHERE has(n.strongly_connected_components) MATCH (n)-[*]-() RETURN n