链接到多个并行子图匹配

Chaining to multiple parallel subgraph matches

我有一个包含多个锻炼节点的图表。每个锻炼节点都与多种媒体、锻炼类型和 body 焦点节点相关。

以下各个查询均按预期工作并给出预期结果:

1) Return 组锻炼和每个媒体:

MATCH (w:Workout)-[:hasMedia]->(m:Media) RETURN w.name as workout, collect(m.url) AS media

2) Return 组锻炼和每个锻炼类型:

MATCH (w:Workout)-[:hasConcept]->(wt:Concept)-[:ofType]->(Category{name:"training"}) RETURN w.name AS workout, collect(wt.name) AS workoutType

3) Return 组锻炼和每个锻炼的 body 重点:

MATCH (w:Workout)-[:hasConcept]->(bf:Concept)-[:ofType]->(Category{name:"bodyfocus"}) RETURN w.name AS workout, collect(bf.name) AS bodyFocus

此外,我有一组与锻炼相关的人员节点。

以下查询按预期工作并给出预期结果:

A) Return 一组与特定人相关的锻炼及其原因(分数、证据):

MATCH (Person{personId:"1028"})-[r:hasAffinity]->(c:Concept)<-[s]-(w:Workout) RETURN sum(toFloat(r.score)*toFloat(s.score))/count(c) AS score, w.name AS workout, collect({text:c.name, polarity:r.score, evidenceId:c.name}) AS evidence

我正在尝试做的(并且惨败)是得到一个单一的复合查询来回答以下问题:"return the set of relevant workouts for a person, with score, evidence, media, workout types, and body focuses for each workout".

我似乎想要:匹配{A 的路径} WITH w MATCH w-{其余 1 的路径},w-{其余 2 的路径},w-{其余 3 的路径} RETURN {A 的东西}、{1 的东西}、{2 的东西}、{3 的东西}

...但我无法让它发挥作用(而且作为新手,这种方法无论如何都可能是错误的)。帮忙?

我认为这就是您需要在一个查询中组合所有内容的方法:

// get the Workouts of a Person via the Concept
MATCH (p:Person {personId:"1028"})-[r:hasAffinity]->(c:Concept)<-[s]-(w:Workout)

// take the Person and Workout to the next step, calculate score and collect evidence
WITH DISTINCT p, w, sum(toFloat(r.score)*toFloat(s.score))/count(c) AS score, 
     collect({text:c.name, polarity:r.score, evidenceId:c.name}) AS evidence

// Match everything else for the workout
MATCH (w)-[:hasConcept]->(wt:Concept)-[:ofType]->(:Category {name:"training"})
MATCH (w)-[:hasConcept]->(bf:Concept)-[:ofType]->(:Category {name:"bodyfocus"})
MATCH (w)-[:hasMedia]->(m:Media)

// Return everything (score and evidence are available from the WITH statement)
RETURN p.personID, w.name AS workout, collect(wt.name) AS workoutType, 
    collect(bf.name) AS bodyFocus, collect(m.url) AS media, score, evidence