java - 如何将 Gremlin-Console-Code 转换为 Java-Code?

标签 java gremlin tinkerpop amazon-neptune

我真的很喜欢 Gremlin,但我认为有时很难将控制台代码转换为 Java 代码 例如:

g.E().project('EDGE','IN','OUT','PROP')
     .by(id())
     .by(inV().union(id()).fold())
     .by(outV().union(id()).fold())
     .by(properties().fold())

在控制台中工作正常,但在 Java 中则不行。有人可以帮助我编写这段代码,或者为我的 future 提供一个好的建议吗?

最佳答案

Gremlin 控制台自动具有大量静态导入,以便您可以节省击键并使 Gremlin 看起来不那么冗长。当你这样做时:

g.E().project('EDGE','IN','OUT','PROP')
     .by(id())
     .by(inV().union(id()).fold())
     .by(outV().union(id()).fold())
     .by(properties().fold())

你真正在做的是:

g.E().project('EDGE','IN','OUT','PROP')
     .by(__.id())
     .by(__.inV().union(__.id()).fold())
     .by(__.outV().union(__.id()).fold())
     .by(__.properties().fold())

在您的 Java 应用程序中,您只需要包含一个 import 语句,例如:

import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.*;

Groovy 控制台的原始语法将完美粘贴到 Java 应用程序中。或者,如果您更喜欢更详细的语法,请使用 __ 类的标准 import ,然后显式使用它来生成您的子遍历,如上面第二个示例所示。请参阅Reference Documentation中建议导入的完整列表。 .

关于java - 如何将 Gremlin-Console-Code 转换为 Java-Code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61128321/

相关文章:

java - @PropertySource java.io.FileNotFoundException

Java:无法从同一包中的不同类访问静态变量

java - Gremlin 3 在指定深度停止重复(java)

apache-spark - Spark 图上的 Gremlin 遍历查询

java - Java线程ID在多个线程池中是否唯一?

java - 将算法从 o(n) 转换为 o(1)

java - 获取字符串形式的 Gremlin 查询并在 java 中执行它而不将其提交给 GremlinServer

amazon-web-services - AWS Neptune 图形数据库中的遍历顺序保证

amazon-web-services - 有没有办法在 Amazon Neptune Graph 的边缘存储更多信息?

python - 在 Tinkerpop 中使用 Python 创建图形处理程序的可能性