如何获取不依赖内部结构、关联指定顶点的子图
顶点关联子图查询方案
你需要实现的是从指定顶点(顶点3)出发提取全量关联子图的需求,仅返回子图包含的所有顶点与边、无需解析子图内部结构,属于图数据库的基础遍历场景,通用实现方式如下:
核心查询逻辑
- 以ID为3的顶点作为遍历起始节点
- 遍历范围设置为全量可达路径,无深度限制
- 遍历过程中同步采集所有经过的顶点与边,最终返回去重后的结果即可
常见图查询语言实现示例
Gremlin(兼容JanusGraph、AWS Neptune、HugeGraph等)
查询语句:g.V('3').emit().repeat(bothE().otherV().simplePath()).path().unfold().dedup()
该语句会自动返回从顶点3出发所有可达路径上的顶点与边,自动去重,无需额外处理子图结构。
Cypher(兼容Neo4j、Nebula Graph Cypher兼容模式)
查询语句:MATCH (v)-[e*]-(v3) WHERE id(v3) = '3' RETURN collect(DISTINCT v) AS subgraph_vertices, collect(DISTINCT e) AS subgraph_edges
返回结果直接包含去重后的子图顶点列表与边列表。
参考示意图

内容的提问来源于stack exchange,提问作者Jaroslaw Schaller
相关产品推荐
相关产品推荐

