Java 在Gremlin 3中键入筛选步骤?

Java 在Gremlin 3中键入筛选步骤?,java,graph-databases,gremlin,tinkerpop3,Java,Graph Databases,Gremlin,Tinkerpop3,我想知道如何在Gremlin 3.xGraphTraversal中应用类型过滤器。例如,让我们把它看作是一个示例图。 在这里,我们可以执行以下操作: Set Set=graph.V().has(“name”,“jupiter”).toSet() 。。。并获取一个集我想要的是一个Iterable(或者Iterable的子类)。从遍历声明中,由于.V()运算符,结果只能由顶点组成。由于Java类型系统的缘故,它不必要地泛化为元素。有没有办法键入此筛选器?我想做的是沿着这些思路做一些事情 Set<

我想知道如何在Gremlin 3.x
GraphTraversal
中应用类型过滤器。例如,让我们把它看作是一个示例图。 在这里,我们可以执行以下操作:

Set Set=graph.V().has(“name”,“jupiter”).toSet()

。。。并获取一个
我想要的是一个
Iterable
(或者
Iterable
的子类)。从遍历声明中,由于
.V()
运算符,结果只能由顶点组成。由于Java类型系统的缘故,它不必要地泛化为
元素
。有没有办法键入此筛选器?我想做的是沿着这些思路做一些事情

Set<Vertex> vertices = graph.V().has("name", "jupiter").cast(Vertex.class).toSet();
Set texts=graph.V().has(“name”,“jupiter”).cast(Vertex.class).toSet();
。。。但是没有
cast
操作符。归根结底,我之所以要这样做,是因为我需要在foreach循环中迭代生成的顶点,并且必须向下转换循环变量,因为循环中的第一个语句很烦人


我对其他选择持开放态度,我对《小精灵3》还是新手,可能还有很多事情我还不知道。

针对Tinkerpop3 M6/titan0.9 M1,以下几点应该有效:

Set<Vertex> vertices = graph.V().<Vertex>has("name", "jupiter").toSet();
Set vertices=graph.V().has(“name”,“jupiter”).toSet();

大多数M6类型的问题都可以通过类似的方式解决(参数化按预期类型生成元素的方法)。

您使用的是Titan/TP3的哪个版本?我使用的是Titan 0.9.0-M1,以及附带的gremlin 3.x版本。这是TP3的一个非常旧的版本(准确地说是M6)。针对titan09分支和TP3 M9,我不认为铸造问题是一个问题。有可能是泛型中发生了一些变化,从而在某个地方解决了这个问题。好吧,那就太好了。然而,我认为我无法说服我的团队针对分支进行开发。你是否碰巧知道下一个Titan snapshot版本(0.9.0-M1之后)将于何时发布?TP3 M9正在进行发布投票。预计将在下周左右发布。我不认为Titan会发布一个真正的0.9 GA…当TP3正式上市时,它会直接升级到1.0。我想你至少还要再看几个星期。如果你认为泰坦0.9平方米对抗TP3 M9会对你有所帮助,你可能想在奥雷利乌斯图形邮件列表上提出这样的请求。