apoc.path.subgraphAll 没有 Return 图表
apoc.path.subgraphAll Doesn't Return a Graph
我正在尝试根据重复模式可视化图表,apoc.path.subgraphAll 似乎是我要用的东西。
配合查询:
MATCH (av:Architecture_View {`view identifier`:'SV-01'})
//pattern is (Architecture_View)-[:SUPPLIES]->(Architecture_Description_Tuple)-[:`SUPPLIED TO`]->(Architecture_View)
CALL apoc.path.subgraphAll(av,{
beginSequenceAtStart: true,
sequence: "`SUPPLIES`>,Architecture_Description_Tuple,`SUPPLIED TO`>,Architecture_View"})
YIELD nodes, relationships
RETURN nodes, relationships;
我只是得到返回的起始节点 (av)。没有返回错误。
如果我只是手动运行一个查询来迭代这个模式一次
MATCH r=(av:Architecture_View {`view identifier`:'SV-01'})-[:SUPPLIES]-(adt:Architecture_Description_Tuple)-[:`SUPPLIED TO`]->(av2:Architecture_View)
RETURN r
我得到了预期的图表。
returns结果或序列定义的returns语句的方式有问题吗?
如果您指定 beginSequenceAtStart
,您提供的序列模式必须包括起始节点。在您的情况下,起始模式从起始节点的第一个关系开始。
例如,给出如下测试数据:
MERGE (a: View { id: 1 })-[:SUPPLIES]->(b: DescriptionTuple { desc: 'description' })-[:SUPPLIED_TO]->(a2: View {id: 2 })
下面的两个查询都将 return 子图连接 a
到 a2
- 注意 beginSequenceAtStart
和序列字符串的初始块在这两个查询中是如何不同的案例:
// beginSequenceAtStart false, start with the first relationship type
MATCH (a: View { id: 1 })
CALL apoc.path.subgraphAll(a, {
beginSequenceAtStart: false,
sequence: "SUPPLIES>,DescriptionTuple,SUPPLIED_TO>,View"
})
YIELD nodes, relationships
RETURN nodes, relationships
// beginSequenceAtStart true, begin with the first node label
MATCH (a: View { id: 1 })
CALL apoc.path.subgraphAll(a, {
beginSequenceAtStart: true,
sequence: "View,SUPPLIES>,DescriptionTuple,SUPPLIED_TO>,View"
})
YIELD nodes, relationships
RETURN nodes, relationships
我正在尝试根据重复模式可视化图表,apoc.path.subgraphAll 似乎是我要用的东西。
配合查询:
MATCH (av:Architecture_View {`view identifier`:'SV-01'})
//pattern is (Architecture_View)-[:SUPPLIES]->(Architecture_Description_Tuple)-[:`SUPPLIED TO`]->(Architecture_View)
CALL apoc.path.subgraphAll(av,{
beginSequenceAtStart: true,
sequence: "`SUPPLIES`>,Architecture_Description_Tuple,`SUPPLIED TO`>,Architecture_View"})
YIELD nodes, relationships
RETURN nodes, relationships;
我只是得到返回的起始节点 (av)。没有返回错误。
如果我只是手动运行一个查询来迭代这个模式一次
MATCH r=(av:Architecture_View {`view identifier`:'SV-01'})-[:SUPPLIES]-(adt:Architecture_Description_Tuple)-[:`SUPPLIED TO`]->(av2:Architecture_View)
RETURN r
我得到了预期的图表。
returns结果或序列定义的returns语句的方式有问题吗?
如果您指定 beginSequenceAtStart
,您提供的序列模式必须包括起始节点。在您的情况下,起始模式从起始节点的第一个关系开始。
例如,给出如下测试数据:
MERGE (a: View { id: 1 })-[:SUPPLIES]->(b: DescriptionTuple { desc: 'description' })-[:SUPPLIED_TO]->(a2: View {id: 2 })
下面的两个查询都将 return 子图连接 a
到 a2
- 注意 beginSequenceAtStart
和序列字符串的初始块在这两个查询中是如何不同的案例:
// beginSequenceAtStart false, start with the first relationship type
MATCH (a: View { id: 1 })
CALL apoc.path.subgraphAll(a, {
beginSequenceAtStart: false,
sequence: "SUPPLIES>,DescriptionTuple,SUPPLIED_TO>,View"
})
YIELD nodes, relationships
RETURN nodes, relationships
// beginSequenceAtStart true, begin with the first node label
MATCH (a: View { id: 1 })
CALL apoc.path.subgraphAll(a, {
beginSequenceAtStart: true,
sequence: "View,SUPPLIES>,DescriptionTuple,SUPPLIED_TO>,View"
})
YIELD nodes, relationships
RETURN nodes, relationships