提问参考模版:
-
nebula 版本:3.4.1
-
部署方式: 单机
-
安装方式:RPM
-
是否上生产环境: N
写了一个go from 查询语句但感觉运行速度太慢,想请大佬们帮忙优化一下,第一次写go from语句不太熟练。
大致上是从一部电影出发,通过类别查询推荐电影,然后根据电影类别的jaccard相似度排序后返回,感觉写的太复杂了
go from "1" over * YIELD dst(edge) as g,src(edge) as m
| GO from $-.g over * reversely yield src(edge) as recomm , $-.m as m,$-.g as g
| group by $-.m,$-.recomm YIELD $-.m as m,$-.recomm as recomm,tofloat(size(COLLECT($-.g))) as size
|go from $-.m over * YIELD dst(edge) as g,src(edge) as m,$-.recomm as recomm,$-.size as size
|group by $-.m,$-.recomm,$-.size YIELD $-.m as m,$-.recomm as recomm,COLLECT($-.g) as set_a,$-.size as size
|go from $-.recomm over * YIELD dst(edge) as g,$-.m as m,$-.recomm as recomm ,$-.size as size,$-.set_a as set_a
|group by $-.m,$-.recomm ,$-.size,$-.set_a YIELD $-.recomm as recomm,$-.set_a as set_a,$-.size as size,$-.size/size(toSet($-.set_a + COLLECT($-.g))) AS jaccard
|yield $-.recomm as recomm,$-.jaccard as jaccard
| order by $-.jaccard DESC