我正在与Gremlin研究AWS Neptune,以构建权限系统。 该系统基本上具有三种类型的顶点:用户,权限和组。
我正在寻找一种性能查询,以查找给定用户的所有权限。
此图可能会变得非常庞大,因此请强调一下,我建立了一个17kk用户顶点图,为每个顶点创建10个随机边,然后创建了一些权限。
然后我用来获取所有权限的查询永远永远运行... n_n'
我正在尝试的只是:
g.V('u01')
.repeat(out())
.until(hasLabel('Permission'))
.simplePath()
是否有更好的查询来实现?也许对于这种情况甚至更好的建模?
我当时在想,也许我的10个随机边创建了很多“毫无意义”的循环和连接,这就是查询缓慢的原因。有道理吗?
谢谢!
答案 0 :(得分:1)
您可能正在圈子里奔跑。您应该这样写:
g.V('u01')
.repeat(out().simplePath())
.until(hasLabel('Permission'))
在out
步骤中使用特定标签也是可取的,以避免遍历不相关的路径。