我可以对嵌入式 JanusGraph 实例执行 Gremlin 查询吗?

Can I execute a Gremlin query against an embedded JanusGraph instance?

我知道嵌入式 JanusGraph 的原生 Java api,但是我可以直接对图 [in java] 执行 Gremlin 语法字符串吗?

原因是我有当前针对独立 Gremlin 服务器执行的现有 Gremlin 查询。

查询是从客户端应用程序执行的,因此可以节省时间。

需要说明的是,"native API" 可以针对它执行 Gremlin,但不能作为字符串。您只需使用 Gremlin Java:

graph = // make your JanusGraph instance
g = graph.traversal();
List<Vertex> vertices = g.V().toList();

但如果你真的问你是否可以 "execute a Gremlin syntax String directly against the graph" 那么答案是 "no"。好像你做不到:

graph = // make your JanusGraph instance
List<Vertex> vertices = graph.eval("g.V()").toList();

如果你真的需要这样做,我想你可以利用 GremlinGroovyScriptEngine 将 JanusGraph 作为绑定传递,然后根据它评估 Gremlin 字符串,但除非你需要处理完全动态的 Gremlin 遍历,我不确定是否有理由这样做。