MATCH语句查询问题

  • nebula 版本:nebula 2.0 GA
  • 部署方式(分布式 / 单机 / Docker / DBaaS):单机
  • 硬件信息
    • 磁盘( 推荐使用 SSD)500G
    • CPU、内存信息 40C 128G
  • 问题的具体描述
    如图所示:
    image
    目前的需求描述:在一个大的图空间中,请问如何查询出上图所示的内容。
    详细描述:现已知的是第一个点和第二个点的md5值是相同的,产生过程中仅pname属性发生了变化,但变化之后的结果是未知的,然后第二个点经过net_connect到下一跳,请问这个图用nGQL怎么查出来?

process_create在这里是一条边吗?第二个点是由第一个点生成的吗?

建议把md5作为点的VID(这个通常应该是全局唯一的吧?)

MATCH (a) -[:Process_create]->(b)-[:net_connect]->(c)
WHERE
id(a) == "abc" AND id(b) == "abc" AND a.pname == "bash" AND b.pname != "bash"
RETURN a, b, c
1 个赞

process_create和net_connect是边,第二个点是由第一个生成的。

请问这个根据pname查的话nGQL是怎样的呀,因为md5并不是唯一的,点的ID也是不确定的

假设pname和md5是tag1上的两个属性

MATCH (a:tag1{pname:"bash"}) -[:Process_create]->(b)-[:net_connect]->(c)
WHERE
a.md5 == "abc" AND b.md5 == "abc"  AND b.pname != "bash"
RETURN a, b, c

请问执行之前需要自行添加索引是么 要使用怎么的nGQL添加更好呢

是的,索引的创建可以参照 CREATE INDEX - Nebula Graph Database 内核手册

注意如果先插入了部分数据再建索引,那么建索引之前的数据是不会自动生成索引的,需要rebuild index

我给pname创建了一个点的索引,也进行了rebuild,但是在执行match的时候出现以下错误:
image
请问这是什么原因呢 :grimacing:

看着是网络问题,你是用studio操作吗?贴一下版本信息吧

其他语句能执行吗?

对 用的是Studio v2.2.0操作的,其他语句都是可以执行的。检查了网络,网络应该是没有问题来着,尝试使用match单独去匹配点等其他命令也会出现这个问题

用console连接上服务执行match语句有问题吗?