如何在格林姆林中进行遍历的交集

问题描述 投票:0回答:1

假设我有2个匿名遍历A和B。遍历A的结果为V [1],V [2],V [3],遍历B的结果为V [3],V [4]和V [5]。

A和B都在搜索都不会出现在单个顶点中的属性。

“ A”遍历搜索V [1]和V [1]中的属性(x == y)连接到作为遍历结果一部分的V [2]和V [3]。

“ B”遍历搜索V [5]中的属性(u == w),并且V [5]连接到作为遍历结果一部分的V [3]和V [4]。

如何找到这些结果的交集?

我尝试做:

__.and(A, B)

但是结果不是相交。

例如:

A = __。has('name','marko')。out()

B = __。has('name','josh')。out()

__。and(A,B)不正确。

注意:为简单起见,采用了上面的示例。在实际查询中,A和B很大,每个查询中都有多个并集。

我通过以下链接:

https://groups.google.com/forum/#!msg/gremlin-users/6_MRJxBnivo/wT_71IAzCwAJ

gremlin intersection operation

[这里所有的建议都提供了一种相交的方法,只要顶点满足所有条件,而这里不是这种情况。

假设我有2个匿名遍历A和B。遍历A的结果为V [1],V [2],V [3],遍历B的结果为V [3],V [4]和V [5]。 A和B都在搜索...

gremlin tinkerpop tinkerpop3
1个回答
0
投票

因此,您可以尝试与groupCount步骤进行相交:

g.V().union(
    __.has('name', 'marko').out(),
    __.has('name', 'josh').out()
).groupCount().by().unfold()
.where(select(values).is(gt(1))).select(keys)
© www.soinside.com 2019 - 2024. All rights reserved.