子图遍历代码样例.txt 880 B

1234567891011121314151617181920212223242526
  1. // 步骤1: 定义标签条件列表
  2. WITH ['Label1', 'Label2'] AS targetLabels // 替换为实际标签条件
  3. // 步骤2: 匹配标签条件节点
  4. MATCH (tag:LabelCondition)
  5. WHERE tag.name IN targetLabels
  6. WITH collect(tag) AS startNodes
  7. // 步骤3: 使用APOC扩展遍历(带双终止条件)
  8. CALL apoc.path.expandConfig(
  9. startNodes,
  10. {
  11. minLevel: 1, // 至少1步关系(排除起始节点)
  12. maxLevel: 10, // 最大路径深度10
  13. relationshipFilter: 'ALL', // 所有关系类型和方向
  14. labelFilter: '>', // 允许所有标签节点
  15. terminatorNodes: [ // 动态检测终止节点
  16. node WHERE 'Talent' IN labels(node)
  17. ],
  18. uniqueness: 'NODE_GLOBAL' // 高性能遍历模式
  19. }
  20. ) YIELD path
  21. // 步骤4: 提取并返回去重节点
  22. WITH last(nodes(path)) AS node // 获取路径终点
  23. RETURN DISTINCT node