match p= (HuaweiBarCode:DM10002640) -[:RM10011889*0…]->(bar)
这个对应的0~N跳的写法怎么写go呢??
match p= (HuaweiBarCode:DM10002640) -[:RM10011889*0…]->(bar)
这个对应的0~N跳的写法怎么写go呢??
是我理解错误了,默认的 n 就是 1
这条语句 nGql 做不了,where 子句还不支持 pattern,exists 也还不支持 pattern。
我接触nebula也算已经有3个月了, 很大精力放在部署和性能测试上了, 这个nGql了解的还少, 就是感觉写ngql很难上手, 像最简单的where a.id in[…] 都写不出来, match到时有, 但是太慢了,
这个是不是也是不行的? 必须制定最大跳数? 例如 go 5 steps from … 这是查5跳以内的(不包括0)? 那寓意其实和neo4j的()-[aa*0…]-() 还是不一样
nGql 的图描述能力比 cypher 要弱很多,所以我们也在逐步兼容 cypher,但是 cypher 相关的优化还比较少,match 确实比 go 语句慢很多,陆续在做优化了。
你上面截图中 match (part:dwr_huaweisn_part) where part.barcode in ["1","2"] return part
这条语句是可以支持的,可以查一下报错原因。
这是我本地的测试:
(czp@nebula) [nba]> match (v:player) where v.name in ["Tony Parker","Yao Ming"] return v.name
+---------------+
| v.name |
+---------------+
| "Tony Parker" |
+---------------+
| "Yao Ming" |
+---------------+
我的数据量太大了, 89亿, 所以报错, 你这个篮球实例太少了
是的。必须指定最大步数,可以包括 0 步,写法类似:
go 0 to 5 steps from "vid" over RM10011889
有可能
你好,
疑问一: 那这个go 0 to 5 from … 假如我这个最大的跳数是3步, 那是不是走到3步就停了, 不会走了,这样的话, 我就可以吧5写大点
疑问二: 这些open cypher的函数 ngql都不支持么?
p130
match + collect 是可以的。
yield + collect 我也不是很确定,还是尽量不要 原生nGQL 混合 cypher语法 使用
go from "player100" over serve
where serve.start_year > 1995
yield serve.start_year AS s
| yield collect($-.s)
应该都是支持的,我本地测试:
(czp@nebula) [nba]> with ["123",null,"abc"] as ids return reverse(ids),tail(ids),head(ids),last(ids),coalesce([ids[1],ids[2]])
+--------------------------+-------------------+-----------+-----------+---------------------------+
| reverse(ids) | tail(ids) | head(ids) | last(ids) | coalesce([ids[1],ids[2]]) |
+--------------------------+-------------------+-----------+-----------+---------------------------+
| ["abc", __NULL__, "123"] | [__NULL__, "abc"] | "123" | "abc" | "abc" |
+--------------------------+-------------------+-----------+-----------+---------------------------+
coalesce
的写法好像和 cypher 不一致,我起个 issue 吧
你好
with,return 应该都是opencypher的语法吧,不能和go lookup 混用吧? 我最终是想用到ngql中
函数都是可以用的,比如:
(czp@nebula) [nba]> go from "Tim Duncan" over like yield like._dst as dst | yield collect($-.dst) as dsts
+----------------------------------+
| dsts |
+----------------------------------+
| ["Manu Ginobili", "Tony Parker"] |
+----------------------------------+
Got 1 rows (time spent 2664/2978 us)
Tue, 29 Jun 2021 20:34:42 CST
(czp@nebula) [nba]> go from "Tim Duncan" over like yield like._dst as dst | yield collect($-.dst) as dsts | yield reverse($-.dsts)
+----------------------------------+
| reverse($-.dsts) |
+----------------------------------+
| ["Tony Parker", "Manu Ginobili"] |
+----------------------------------+