可以登录微云数聚公司官网直接尝试一下Neo4j
登录http://www.we-yun.com:7474/browser/
MATCH m=(s:Person)-->(e:Email)-->(r:Person) WHERE e.title=~'.*普通发票.*' RETURN m LIMIT 15
这里只返回了15个节点。如果我们要查到垃圾邮箱的源头,会怎么做?通常垃圾邮箱的标题或者内容会有关于促销,招聘等等字眼。
这里我们就通过对所有邮件的标题遍历,查找关键字“发票”。如果经常发这种邮件的人,邮件数量一定很多。这里我们设置当有这种信件
的数量超过105,就输出他。
MATCH m=(s:Person)-->(e:Email)-->(r:Person)
WHERE e.title=~'.*发票.*'
WITH s,COUNT(e) AS num,COLLECT(e) AS emails,COLLECT(r) AS recevies
WHERE num > 105
RETURN s,emails,recevies
得到图:
很明显就发现,几乎所有发票都是来自这个邮箱yrdudthfffxddh@126.com
那么就可以发现这个主犯了。那么这样就结束了吗?不不,我在上文说过“反向提问”是很有价值的,既然找到了主犯,那么我们不妨多看看,
他还会经常发什么邮件,这类邮件有什么特征。从中挖掘出这类人,发垃圾邮箱的“套路”。
MATCH m=(s:Person)-->(e:Email)-->(r:Person)
WHERE s.account=~'yrdudthfffxddh@126.com'
RETURN s,e,r
仔细观察,你会发现,这个主犯的邮件除了含“发票”的字眼,还有“来电恰谈”,“费用优惠”等字眼。那么这样我们就可以记住这样的字眼,
下次就可以过滤这类字眼的邮件。
通过上面这个例子,应该能体会到,图数据库,在处理垃圾邮件,查找信息的优势了。特别是在处理“反向提问”的问题。并且
查询效率都是在毫秒级别的。
网友评论