У меня есть график с несколькими узлами тренировки. Каждый узел тренировки имеет отношения к нескольким носителям, типу тренировки и узлам фокуса тела.Цепочки для совпадений нескольких параллельных подграфов
Следующие индивидуальные запросы все работы по назначению и дают ожидаемые результаты:
1) Возврат набор тренировок и средств массовой информации для каждого:
MATCH (w:Workout)-[:hasMedia]->(m:Media) RETURN w.name as workout, collect(m.url) AS media
2) Возврат набор тренировок и типы тренировки для каждого:
MATCH (w:Workout)-[:hasConcept]->(wt:Concept)-[:ofType]->(Category{name:"training"}) RETURN w.name AS workout, collect(wt.name) AS workoutType
3) Возврат набор горе rkouts и тело фокусируются для каждого:
MATCH (w:Workout)-[:hasConcept]->(bf:Concept)-[:ofType]->(Category{name:"bodyfocus"}) RETURN w.name AS workout, collect(bf.name) AS bodyFocus
Кроме того, у меня есть множество людей с узлами отношения к тренировкам.
Следующий запрос работает, как предполагался, и дает ожидаемые результаты:
A) возвращаемый набор тренировок, имеющее отношение к конкретному человеку и почему (оценка, доказательства):
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
Я «Я пытаюсь сделать (и терпит неудачу), приходит к одному составному запросу, который отвечает на следующее:« верните набор соответствующих тренировок для человека со счетом, доказательствами, средствами массовой информации, типами тренировок и фокусами для каждой тренировки » ,
Кажется, что я хочу: MATCH {Путь A} С w MATCH w- {остальная часть пути 1}, w- {остальная часть пути 2}, w- {остальная часть пути 3} RETURN {A's stuff}, {1's stuff}, {2's stuff}, {3's stuff}
... но я не могу заставить это работать (и как новичок может ошибаться в отношении подхода в любом случае). Помогите?
Можете ли вы сделать вашу сеть? Было бы намного проще понять, какой запрос вам нужен. –