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