假设我有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都在搜索...
因此,您可以尝试与groupCount
步骤进行相交:
g.V().union(
__.has('name', 'marko').out(),
__.has('name', 'josh').out()
).groupCount().by().unfold()
.where(select(values).is(gt(1))).select(keys)