nebula查询-go查询

go 2 steps from hash(“电脑”) over * BIDIRECT where vertext.type == “3c”
go 2 steps from hash(“电脑”) over * BIDIRECT where edge.type == “3c”
第一个报错 [ERROR (-8)]: Get step out props failed
第二个正常

1 个赞

你用的是1.0吗?

是的

是的呢

看起来是正常的?能贴下你的真实语句么

vertext 是个tag name吗?假如是的话,vertext是没有type这个字段的,只有edge才有,所以这里只能是edgename

1 个赞

如果不知道是出顶点还是入顶点呢?只知道是某个顶点的某个属性=某个值

那你就用或就可以,比如 $^.tag.prop == “aaa” || $$.tag.prop == “aaa”


这个结果是有多少边?

结果有18条边,18条边有四种边类型。

那些重复的是什么情况呢?

我看不重复啊。

例如tag2tag 不是重复3次吗?

因为你查的是两度,所以目标点有重复的,比如有两条路径1->2->3 1->4->3 这样从1 查两度,目标点就会有两个3

针对于你上面的例子,假如查出来的结果,dst 有2,3,4,那这些dst的src怎么知道呢?

例如

go from 11 over tag2tag,content2tag,sku2tag,user2tag yield tag2tag._src, tag2tag._dst, content2tag._src, content2tag._dst, sku2tag._src, sku2tag._dst, user2tag._src, user2tag._dst

1 个赞

ok,我用这种方式试试,因为我用$^ 和 $$ 取的时候是有问题的。

使用这种方式,虽然能获取src和dst,但是还是没办法确定边的方向,有什么办法能确定边的方向吗?

把 sku2tag._type 输出出来,负数表示方向,比如sku2tag._src = 1, sku2tag._dst=2, sku2tag._type=-1
那么实际的方向是,1<–2

[ERROR (-8)]: Exeception when handle out-bounds/in-bounds: N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_7bad_getEEEEE: boost::bad_get: failed value get using boost::get. 报了个错