## Nebula Studio console控制台中basketballplayer示例库执行
MATCH p=(v:player)-[e:follow|serve*1..2]->(v2)
where id(v) == 'player101' and v2.player.name='Tony Parker'
RETURN p,length(p);
MATCH p=(v:player)-[e:follow|serve*1..2]->(v2)
where id(v) in ['player100'] and v2.player.name == 'Tony Parker'
RETURN nodes(p),relationships(p),length(p);
为何使用下面的GQL却查询不到记录?我已经对follow,follow.degree创建了索引
MATCH p=(v:player)-[e:follow|serve*1..2]->(v2)
where id(v) in ['player100'] and v2.player.name == 'Tony Parker' and e.follow.degree >= 95
RETURN nodes(p),relationships(p),length(p);
## 根据多edge-type进行1~2跳的子图查询
MATCH p=(v:player)-[e:follow|serve*1..2]->(v2)
## 指定起始顶点
where id(v) in ['player100']
## 过滤多tag属性
and (v2.player.name == 'Tony Parker' or v2.team.name == 'Warriors')
## 过滤多edge-type属性
and ALL(e_ in e WHERE (e_.degree >= 95 and type(e_) == 'follow') or (e_.start_year >= 2015 and type(e_) == 'serve'))
## 过滤第几跳(e[0]表示第一跳)的多edge-type属性
and ((e[0].degree >= 95 and type(e[0]) == 'follow') or (e[1].start_year >= 2015 and type(e[1]) == 'serve'))
RETURN nodes(p),relationships(p),length(p),e,v,v2;
MATCH (v:player)-[e:follow|serve*1..2]-(v2)
where id(v) == 'player100' and v2.player.name=='Tony Parker'
RETURN {id:id(v),name:v.player.name},{id:id(v2),name:properties(v2).name},ALL (e_ in e {start_year:properties(e_)});