Я пытался создать объединение двух необязательных совпадений (как показано ниже), но вместо объединения я получаю пересечение двух. Как мне изменить этот запрос, чтобы получить необходимый союз?Cypher for neo4j
optional match (a:PA)-[r2:network*2]-(b:PA) where a.last_name='smith'
And Not (a:PA)-[:network]-(b:PA)
optional match (a:PA)-[r3:network*3]-(b:PA) where a.last_name='smith'
And Not (a:PA)-[:network]-(b:PA)
return b.first_name, count(r2), count(r3)
Эта база данные графа должна имитировать социальные network.Through первого дополнительный матч я попытался найти второе соединение степени в сети пользователя (кузнец) и отсчет времени они появляются как 2-ой степени соединение в его сети. Второй матч делает то же самое для соединений третьей степени.
Но запрос возвращает пересечение 2 необязательных совпадений вместо их объединения, т. Е. Я получаю подсчет только тех имен, которые могут отображаться как как 2 степени, так и 3-градусное соединение по отношению к пользователя (кузнец).
Вместо этого я хотел бы получить имя всех соединений второй степени и третьей степени вместе со счетами. Как изменить этот запрос, чтобы получить требуемые результаты?