精华 Neo4j图数据库高级应用系列 / 服务器扩展指南 (3.2) - 可配置的路径扩展过程
发布于 4 个月前 作者 pangguoming 296 次浏览 来自 分享
  1. 定义

     可配置的路径扩展过程提供完整的配置参数来控制遍历过程。
    
  2. 过程调用接口 image.png

image.png

  1. 示例 // 3.4(1) 调用可配置的路径扩展过程,寻找三国时期有谁自己没当皇帝、

// 但是他的儿子当了皇帝的。

// 参数:- startNode:代表“朝代”的节点

// - sequece: ‘朝代,<建立,皇帝,父子,-皇帝|人物’

// - maxLevel: -1,遍历直到返回能够到达的所有路径

// 返回结果:曹操,司马昭

MATCH (n:朝代)

WITH n

CALL apoc.path.expandConfig(n,

{ maxLevel: -1,

  sequence: '朝代,<建立,皇帝,父子,-皇帝|人物'

}

) YIELD path

RETURN path

// 3.4(2) 调用可配置的路径扩展过程,寻找三国时期为各国效力的文臣。

//

// 参数:- startNode:代表“朝代”的节点

// - relationshipFilter: ‘<建立|父子|主公>’

// - labelFilter: ‘+人物|>文臣’

// - maxLevel: -1,遍历直到返回能够到达的所有路径

// 返回结果:排除既是“文臣”又是“皇帝”的人物。

MATCH (n:朝代)

WITH n

CALL apoc.path.expandConfig(n,

{ maxLevel: -1,

  relationshipFilter: '<建立|父子|主公>',

  labelFilter: '+人物|>文臣'

}

) YIELD path

WITH nodes(path) AS nodes

WHERE NOT ‘皇帝’ IN labels(nodes[-1])

RETURN nodes[0].name AS kingdom, nodes[-1].name AS advisor

---- 待续 ---- (下篇:3.4 搜索子图)

(原著:Neo4j官方技术支持 @graphway 俞方桦老师)

回到顶部