nebula 和neo4j 语句替换

各位好, 我们线上有一个攻击溯源场景, 之前使用neo4j做的,因为是单机的,所以打算迁移到nebula上,neo4j的查询语句支持比较强,不知道nebulaGraph能不能实现

这是neo4j的一个语句

match path=(n1:server)-[]-(n2:event)-[]-(n4:attacker) 
         where n2.Id='asdfj6i391j7l0' and n2.time>=1610294400000 and n2.time<=1610380800000 and n2.pin='test' 
OPTIONAL MATCH y=(n2)-[]-(n3:process) OPTIONAL MATCH x=(n3)--(n5:process) return n1, n2, n3, relationships(path) as r1,n4, relationships(y) as r2,n5,relationships(x) as r3 limit 100

一共是四种节点, server, event attacker process
这个查询语句的意思是根据条件查询attacker(攻击者)通过event(事件)攻击server(主机),如果server有进程信息,就把进程信息查出来,返回每个节点信息和节点之间的关系

麻烦问一下这个语句用nebulaGraph可以实现吗 谢谢

1 个赞

顶一下

OPTIONAL MATCH 还没实现。
其他几个语法已经有了。

您好, 麻烦问一下 match path=(n1:server)-[]-(n2:event)-[]-(n4:attacker) 像是这种, 我要指定从n1到n2再到n3, 这种用go语句怎么写啊; 另外对于optionMatch这种 目的是为了判断如果包含的我就一直往深度去查询, 这种go语句 有没有可以替代的,谢谢

这个match是支持的。

https://docs.nebula-graph.io/2.0/3.ngql-guide/7.general-query-statements/2.match/
match文档了解一下 :grinning:

谢谢

好的 谢谢

多个match的功能也还没有支持

你好 match在1.1没实现吗,我在文档上只看到了2.0版本有,谢谢

只有2.0实现了

MATCH 的功能只在 nebula 2.0 版本上使用, OPTIONAL MATCH 功能要到下个版本支持,不会在 2.0-GA 中出现。

多个match 嵌套 以及optional match 2.0.1实现了吗,

2.01还没实现

https://docs.nebula-graph.com.cn/2.0.1/2.quick-start/0.FAQ/#opencypher