Проблема: я хочу использовать cypher для возврата путей, где я могу указать начальную точку, и отфильтровать по количеству соединений, входящих в конечную точку для этих путей.
Некоторые фиктивные данные примера:
путь1: (a1: a) - (b1: b) - (c1: c) - (d1: d)
путь2: (a1: a) - (b2:b) - (c2: c) - (d1: d)
path3: (a1: a) - (b3: b) - (c3: c) - (d2: d)
path4: (a1: a) - (b2: b) - (c2: c) - (d3: d)
path5: (a2: a) - (b4: b) - (c4: c) - (d3: d)
Цель: я хочу вернуть все пути, которые начинаются с a1 и заканчиваются на dn, где количество отношений до dnиз путей, начинающихся с a1, составляет> 1 (или 2, или 3… в приведенном выше примере мы будем использовать> 1, но я хочу иметь возможность изменить это для реальных данных, где число отношений может быть намного выше).
В приведенном выше примере я хочу включить путь 1 и путь 2, потому что они оба начинаются с a1 и заканчиваются на d1, а количество путей, начинающихся на a1 и заканчивающихся на d1, равно 2 (то есть> 1).
пути 3 и 4 будутбыть исключенным, потому что, хотя они начинаются с a1, нет других путей, начинающихся с a1, которые заканчиваются на d2 или d3.Другими словами, d2 и d3 уникальны в контексте путей, начинающихся с a1.
путь 5 будет исключен, поскольку он не начинается с a1, даже если есть> 1 пути, которые заканчиваются на d3
Все промежуточные узлы в основном не имеют значения, кроме возможности указать свои метки во время запроса и получить узлы, которые составляют путь в конце.
Я посмотрел, но могу 'не найти ничего, что решает эту проблему в другом месте