Neo4j:如何满足第一次见到的发送者&x2B;第一次看到多个收件人的附件
我正在处理入站电子邮件数据。此特定密码查询的目标是在有Neo4j:如何满足第一次见到的发送者&x2B;第一次看到多个收件人的附件,neo4j,cypher,Neo4j,Cypher,我正在处理入站电子邮件数据。此特定密码查询的目标是在有第一次看到的发件人和第一次看到的附件发送给多个收件人时返回 附件如下所示: <id>:16107 containsMultipleExtensions:nofileExtension:jpg firstseen:"2020-01-14T06:12:09Z" lastseen:"2020-01-14T06:12:09Z" name:090aa40109043fc6383ba8498e22b5338af8c8ddec0ea2 t
第一次看到的发件人和第一次看到的附件发送给多个收件人时返回
附件
如下所示:
<id>:16107 containsMultipleExtensions:nofileExtension:jpg firstseen:"2020-01-14T06:12:09Z" lastseen:"2020-01-14T06:12:09Z" name:090aa40109043fc6383ba8498e22b5338af8c8ddec0ea2 timesseen:12
<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.lastsseen和a.firstseen=a.lastsseen
时选择。那样的话,我只有在第一次看到它们的时候才会选择
但是我对路径部分有问题。我正在寻找一个发件人(第一次)何时向多个收件人发送一个或多个附件(第一次)
这就是我目前所拥有的
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
返回:
这似乎做什么,我希望它除了它包括单一的收件人(如左图所示。如何解决此问题,使其仅在发件人发送电子邮件时显示,如右图所示?这是因为您的条件为“打开”cnt
,它正在计算附件数。在上图的左图子图中,您可以看到一个发件人向一个收件人发送多个附件。因此,如果您正在“查找1个发件人(第一次)何时向多个收件人发送1个或多个附件(第一次)”,请将您的条件移动到收件人的计数:
MATCH path = (s:Sender)-->(a:Attachment)-->(r:Recipient)
WHERE s.firstseen = s.lastseen AND a.firstseen = a.lastseen
WITH s, COUNT(distinct r) as cnt, COLLECT(path) AS paths
WHERE cnt >= 2
RETURN paths