【发布时间】:2019-01-28 09:34:26
【问题描述】:
我正在尝试生成一个 Gremlin 查询,据此我需要找到具有来自特定其他顶点的边的顶点。此查询的不太抽象的版本是我有用户顶点,这些顶点与组顶点相关(即学校中的科目,所以“6 年级数学”和“6 年级英语”等的学生)。一个额外的困难是子组在这个查询中存在的能力。
查询我需要找到那些在用户指定的2个或更多组中的用户。
目前我有一个简短的解决方案,但在使用 Amazon Netpune 的生产使用中,即使使用少量数据,此查询的性能也很差。我确信有一种更简单的方法可以实现这一点:/
g.V()
.has('id', 'group_1')
.repeat(out("STUDENT", "SUBGROUP"))
.until(hasLabel("USER"))
.aggregate("q-1")
.V()
.has('id', 'group_2')
.repeat(out("STUDENT", "SUBGROUP"))
.until(hasLabel("USER"))
.where(within("q-1"))
.aggregate("q-2")
.V()
.hasLabel(USER)
.where(within("q-2"))
# We add some more filtering here, such as search terms
.dedup()
.range(0, 10)
.values("id")
.toList()
【问题讨论】:
标签: graph gremlin amazon-neptune