Я работаю с данными входящей электронной почты. Цель этого специального c шифровального запроса - возвращать при наличии first seen sender and first seen attachment sent to multiple recipients
.
. attachment
выглядит следующим образом:
<id>:16107 containsMultipleExtensions:nofileExtension:jpg firstseen:"2020-01-14T06:12:09Z" lastseen:"2020-01-14T06:12:09Z" name:090aa40109043fc6383ba8498e22b5338af8c8ddec0ea2 timesseen:12
sender
выглядит например:
<id>:13329 domain:example.com firstseen:"2020-01-14T06:12:09Z" lastseen:"2020-01-14T06:12:09Z" name:sales@example.com timesseen:48
Чтобы получить первого увиденного отправителя и получателя, я бы выбрал только когда s.firstseen = s.lastseen AND a.firstseen = a.lastseen
. Этот путь я выбрал бы только тогда, когда это было в первый раз.
Но у меня проблемы с частью пути. Я ищу, когда 1 отправитель (в первый раз) отправляет 1 или более вложений (в первый раз) более чем одному получателю.
Это то, что у меня есть.
MATCH path = (s:Sender)-->(a:Attachment)-->(:Recipient)
WHERE s.firstseen = s.lastseen AND a.firstseen = a.lastseen
WITH s, COUNT(DISTINCT a) AS cnt, COLLECT(path) AS paths
WHERE cnt >= 2
RETURN paths
Какие возвращает:
Это, кажется, делает то, что я хочу, за исключением того, что он включает в себя отдельных получателей (как пример слева. Как я могу это исправить, чтобы он отображался только когда отправитель отправляет электронные письма только как результаты справа?