在Amazon Neptune和Gremlin中获得多个标签的匹配

在Amazon Neptune和Gremlin中获得多个标签的匹配,gremlin,amazon-neptune,Gremlin,Amazon Neptune,Amazon Neptune的Gremlin实现允许在顶点上使用多个标签(请参阅) 但如何通过多个标签查询顶点 g、 V().hasLabel('label1').hasLabel('label2')) 这是我所期望的,但似乎没有达到目的 给定Gremlin语义,这是: g.V().hasLabel('label1').hasLabel('label2') 这意味着您正在执行“and”操作,因此顶点必须具有“label1”和“label2”。如果需要“或”操作,其中顶点可以具有“label1”

Amazon Neptune的Gremlin实现允许在顶点上使用多个标签(请参阅)

但如何通过多个标签查询顶点

g、 V().hasLabel('label1').hasLabel('label2'))


这是我所期望的,但似乎没有达到目的

给定Gremlin语义,这是:

g.V().hasLabel('label1').hasLabel('label2')
这意味着您正在执行“and”操作,因此顶点必须具有“label1”和“label2”。如果需要“或”操作,其中顶点可以具有“label1”或“label2”,则可能需要将其更改为:

g.V().or(hasLabel('label1'),hasLabel('label2'))

不确定这是否解决了你想查询的海王星问题,但这正是Gremlin所期望的。

作为一项临时措施,你可以尝试做
hasLabel('label1').fold().unfold().hasLabel('label2')
谢谢开尔文。这看起来像是一个解决方法,但至少它返回了预期的结果。我希望AWS Neptune将很快支持更简单的g.V().hasLabel('label1').hasLabel('label2')嗯-这很有趣,确实
g.V().hasLabel('label1').barrier().hasLabel('label2')
也能工作吗?@Stephenmellette-不,barrier不能解决问题(无论如何谢谢)