Для указанной проблемы нет необходимости создавать отношения NEXT
, поэтому этот ответ не мешает их создавать.Вы можете изменить этот ответ, чтобы добавить его обратно, если это действительно необходимо по какой-то причине.
Этот запрос должен возвращать частоту каждой пары имен (которые появляются в вашей последовательности time
):
MATCH (act: Action)
WITH act ORDER BY act.time ASC
RETURN apoc.coll.frequencies(apoc.coll.pairsMin(COLLECT(act.personName))) AS giveBackFrequencyOfPairs
Вывод с вашими примерами данных будет:
╒══════════════════════════════════════════════════════════════════════╕
│"giveBackFrequencyOfPairs" │
╞══════════════════════════════════════════════════════════════════════╡
│[{"count":1,"item":["Tom","May"]},{"count":2,"item":["May","Bob"]},{"c│
│ount":1,"item":["Bob","Alex"]},{"count":1,"item":["Alex","Zac"]},{"cou│
│nt":1,"item":["Zac","Jill"]},{"count":1,"item":["Jill","May"]}] │
└──────────────────────────────────────────────────────────────────────┘