从gremlin查询中的值列表中过滤节点

ami*_*nda 0 gremlin titan

假设我有一个属性值列表作为ArrayList,如何通过列表中的值过滤节点。

这样可能吗...

g.V().filter {it.get().value("name") in list}
Run Code Online (Sandbox Code Playgroud)

也与TinkerPop 2.x兼容

Flo*_*ann 5

您可以简单地使用has步骤进行过滤,因为有了within谓词,它可以获取值列表:

gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> names=['josh','peter']; g.V().has('name', within(names))
==>v[4]
==>v[6]
Run Code Online (Sandbox Code Playgroud)

编辑:我的答案不再真正解决该问题,因为它现在需要TinkerPop 2解决方案。如果有人在寻找TinkerPop 3的解决方案时偶然发现此问题,我仍将其保留在此处。